我正在尝试用C#编写一个“out of proc”COM服务器。我该怎么做?
我需要C#代码从我的主C ++应用程序“out of proc”,因为我无法将.NET运行时加载到我的主进程空间
WHY:<?/ em>的
我的C ++代码位于一个DLL中,该DLL被加载到许多不同的客户EXE中,其中一些使用不同版本的.NET运行时。由于只有一个运行时加载到一个进程中,我最好的选择似乎是将我的C#代码放入另一个进程。
答案 0 :(得分:7)
您可以使用System.EnterpriseServices.ServicedComponent创建COM +组件。因此,您将能够创建进程外和进程内(客户端)组件激活以及池,远程处理,作为Windows服务运行等所有COM +的好处。
答案 1 :(得分:1)
Here我们可以读到它是可能的,但是exe将作为库加载而不是像exe那样在它自己的进程中启动。我不知道这对你来说是否有问题?它还包含一些可能的解决方案,如果你想让它像一个真正的进程外com服务器。但也许使用另一种进程间通信方式更好。就像.Net Remoting一样。
答案 2 :(得分:0)
我不能以的方式推荐,但您可以为C#库创建一个COM可调用的包装器,然后创建一个VB6 ActiveX exe项目,将调用委托给您的C#库。
答案 3 :(得分:0)
为什么不能将.net运行时加载到进程空间?可以托管.net运行时并使用COM调用.net。