托管客户端实现托管COM对象中定义的接口

时间:2013-06-03 18:33:14

标签: com

我想要一个托管的com对象,它公开接受作为参数实现给定接口的对象的方法。像这样的东西

[ComVisible(true)]
[Guid(".....")]
class SomeClass {

public void SomeMethod(ISomeInterface arg)
.....

显然ISomeInterface也应该被宣布为ComVisible

现在我想在托管客户端中使用该COM对象并在那里调用SomeMethod。问题是我需要实例化一个实现ISomeInterface的对象。如果那是一个本机COM对象,我会自动生成一个interop程序集,这不会有问题。但是,无法为托管COM对象生成互操作程序集。

我看到.NET 4.0引入了类型等价概念。看起来我可以使用ComImport属性手动生成互操作。但这看起来像一个非常讨厌的工作。我想我也可以使用TypeIdentifierAttribute但是关于它的文档含糊不清,它说它主要是供编译器使用。

那么有没有其他方法可以做到这一点?

0 个答案:

没有答案