与复杂类型的互操作

WCF COM Interop With Complex Types

本文关键字:互操作 类型 复杂      更新时间:2023-10-16

我想创建一个WCF服务与COM互操作,我需要通过复杂的数据。最好是自定义类对象的数组。我不知道如何做到这一点,而且缺乏像样的例子。

我在Stackoverflow上只发现了一个类似的问题

从非托管c++调用c#传递或返回"复杂";类型

然而,解决方案是只是使用c++/CLI dll代替,但这不是我的选择。调用它的c++应用程序将静态链接到c++运行时,并且我被告知不能更改。

我想用COM互操作创建一个WCF服务

好的,但是你想要这个电话往哪个方向打?对于COM -> . net,您需要创建一个COM可调用包装器。对于。net -> COM,你需要创建一个运行时可调用的包装器。

这听起来像是你试图从COM调用。net,但这就引出了一个问题,为什么你试图通过互操作调用WCF服务?如果您想调用服务,那么使用服务端点并调用它们。

方法我不清楚。我不太确定,但同样的问题也出现在桌面应用程序上,如果你想使用COM组件,最好在COM周围有一个包装器(RCW),在那里你可以引用pia(主互操作程序集)

然后从你的主项目(WCF服务)中引用这个包装器项目,而不是直接引用COM。