C #에서 "Out of proc"COM 서버를 구현하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/30653

  •  09-06-2019
  •  | 
  •  

문제

C #으로 작성된 "out of proc"COM 서버를 구현하려고합니다.어떻게해야합니까?

주 프로세스 공간에 .NET 런타임을로드 할 수 없기 때문에 C # 코드가 주 C ++ 응용 프로그램에서 "Out of proc"이어야합니다.

이유 :
내 C ++ 코드는 다양한 고객 EXE에로드되는 DLL에 있으며, 일부는 서로 다른 버전의 .NET 런타임을 사용합니다.하나의 프로세스에 하나의 런타임 만로드 할 수 있기 때문에 가장 좋은 방법은 내 C # 코드를 다른 프로세스에 넣는 것 같습니다.

도움이 되었습니까?

해결책

System.EnterpriseServices.ServicedComponent를 사용하여 COM + 구성 요소를 만들 수 있습니다.결과적으로, out-of-proc 및 in-proc (클라이언트) 구성 요소 활성화는 물론 풀링, 원격, Windows 서비스로 실행 등의 모든 COM + 이점을 만들 수 있습니다.

다른 팁

여기 에서 가능하다는 것을 읽을 수 있지만 exe는라이브러리로로드되고 exe와 같은 자체 프로세스에서 시작되지 않습니다.그게 문제인지 모르겠어요?또한 실제 out of process com 서버처럼 작동하도록 만들고 싶은 경우 몇 가지 가능한 솔루션이 포함되어 있습니다.그러나 프로세스 간 통신의 다른 방법을 사용하는 것이 더 좋습니다..Net Remoting과 같습니다.

이 방법을 그대로 추천 할 수는 없지만 C # 라이브러리에 대해 COM 호출 가능 래퍼를 만든 다음 호출을 C # 라이브러리에 위임하는 VB6 ActiveX exe 프로젝트를 만들 수 있습니다.

왜 .net 런타임을 프로세스 공간에로드 할 수 없습니까?.net 런타임을 호스팅하고 COM을 사용하여 .net을 호출 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top