【发布时间】:2010-12-17 21:52:47
【问题描述】:
我目前有一个用 C# 编写的 .NET 类库,它通过 COM 将其功能公开给 C++ 程序(.NET 之前的版本)。
我们现在想要将库移出进程以释放主应用程序中的地址空间(它是一个图像处理应用程序,大图像会占用地址空间)。我记得我在 VB6 的日子里可以创建一个“OLE 自动化服务器”。当对象被创建/销毁时,操作系统会自动启动和停止服务器 .exe。这看起来非常适合我们:据我所知,客户端不会发生任何变化,只是它会使用 CLSCTX_LOCAL_SERVER 而不是 CLSCTX_INPROC_SERVER 调用 CoCreateInstance。
如何在 C# 中创建这样的进程外服务器?要么网上没有关于它的信息,要么我的术语已经过时/过时了!
【问题讨论】:
-
我一度得出结论,这不受支持,但我还没有看到任何地方明确说明。我已经尝试与 CoRegisterClassObject 互操作来为 C# COM 对象注册一个工厂,但我从来没有让它工作。好奇其他人有没有运气!
-
在这里查看我的答案:stackoverflow.com/questions/24724784/…
标签: c# .net com automation