通过COM从c#返回对象到Silverlight

本文关键字:对象 Silverlight 返回 COM 通过 | 更新日期: 2023-09-27 17:48:58

我已经创建了一个c# COM可见类,我可以通过

dynamic com = AutomationFactory.CreateObject("MyCom");

函数在Silverlight和我能够返回基本数据类型(即字符串,int..)。到目前为止一切顺利:).

但是现在我想通过COM连接返回一个对象,这被证明是相当困难的。我可以返回一个对象并将其放入一个动态变量中,然后从那里访问对象成员,但是我不能将数据强制转换为我想要的对象类型。

问题:1. 是否有一种方法将动态变量强制转换为我想要的类。2. 是否有一种方法使COM对象返回我想要的类的对象?

通过COM从c#返回对象到Silverlight

你的两个问题的答案都是:不。

安装在客户端上的。net的完整版本和。net的Silverlight版本之间没有互操作。

您能做的最好的事情是创建接受dynamic的包装器类,并将其成员委托给dynamic

如果你想在完整的。net和Silverlight中重用使用这个。net对象的代码,那么使用接口定义这个对象。让原始类实现接口,并让包装类也实现接口。