需要有关从客户端应用程序引用托管COM服务器(EXE)的建议

时间:2011-05-11 12:38:19

标签: c# com com+

我在c#中有一个托管COM流程服务器exe,暴露我的应用程序对象模型以实现自动化一切正常。我可以从非托管代码(例如,VC ++)访问它,它通过使用为我的服务器exe创建的类型库启动我的proc服务器并且每个都通过COM工作。

当我尝试从托管代码执行此操作时,比如C#客户端应用程序,我引用我的服务器exe,但它将服务器进程加载到客户端应用程序中。

如何从托管代码中获取它并且运行在其自己的进程中有一个进程外服务器?

我想要做的是在我的应用程序中公开COM中的应用程序对象模型,以便它可以由非托管代码和托管代码自动使用,类似于microsoft office。通过COM在非托管代码下一切正常,但是尝试从托管代码执行相同操作只会在进程中实例化我的对象。

C#示例:

MyApp.Application app = new MyApp.Application();

只是实例化对象,但我也希望它也启动我的进程COM服务器。我在这里遗漏了什么,只是想知道是否有人有关于做什么或在哪里看的建议。

2 个答案:

答案 0 :(得分:0)

我在this文章中找到了答案:

  无论是否   实现.NET程序集是一个   类库DLL或可执行文件,   总是加载此程序集   进入地址空间   客户端应用程序。而且,在   EXE程序集的情况它既没有执行,   它的运行实例也不会   用于实例化所需的.NET   类。 ...

为了模拟使用.NET EXE程序集作为进程外COM服务器,还需要一些其他非正统的方法。

答案 1 :(得分:0)

我能想到的是使用COM +中托管的服务组件。 MSDN Link