如何编写类似于运行对象表(ROT)的WCF服务?

时间:2011-06-21 04:56:35

标签: wcf serialization ipc marshalling com-interop

我正在尝试编写一个running object table类似WCF服务(.NET 4.0),用于跨进程提供对某些COM控件的访问。 COM和.NET客户端都可以访问此服务。

我选择了WCF,因为它建议用于进程间通信,我也认为如果我不必依赖ROT而且我没有太多控制权,那将是一件好事。

在解决了几次打嗝之后,我到达了路障。我不知道如何通过服务传递COM控件并将其返回给客户端。对象永远不会到达服务。尽管建议将WCF用于IPC,但它不提供传递COM对象的开箱即用支持。到目前为止我还没有找到任何解决方案。可能是WCF服务不是替换运行对象表的正确方法。但我认为没有更好的方法来做IPC。

对此有何建议?

2 个答案:

答案 0 :(得分:1)

无法在WCF消息中传递COM objref(我猜你可以在接收器大小上创建MEOW解释器并使用CoMarshalInterThreadInterfaceInStream来传递objref)

但是,您可以将对象放在GIT中并传递GIT cookie

答案 1 :(得分:1)

但我们可以通过实现IUNKNOWn接口

直接将COM对象放入ROT