1

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

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

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

显然ISomeInterface也应该声明ComVisible

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

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

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

4

0 回答 0