为什么tlbimp会将接口转换为coclasses?

时间:2012-05-11 07:17:02

标签: c# .net com tlbimp coclass

事实上,这是一个在大多数情况下tlbimp will convert an interface to a coclass的功能。特别是如果在IDL我有

interface IFirst {
}
interface ISecond {
    HRESULT GetFirst( IFirst** );
}

coclass First {
   interface IFirst;
}

然后tlbimp将看到First是唯一实现IFirst的类,因此它创建了一个.NET接口,interface IFirst替换为class First

interface ISecond {
    First GetFirst(); // co-class returned, not interface
}

这可能在某种程度上有所帮助。

这怎么可能有用?我的意思是class First将使用与interface IFirst相同的方法,因此它不会添加任何内容,因此如果没有转换,我可以在任何地方传递interface IFirst并获得完全相同的效果。这种转换有什么用?

0 个答案:

没有答案