C#CoClass属性有什么作用?

Rob*_*and 41 c# coclass

我在我们正在使用的第三方库中找到了类似以下的代码.

[CoClass(typeof(BlahClass))]
public interface Blah : IBlah
{
}
Run Code Online (Sandbox Code Playgroud)

这到底是做什么的?msdn文档没有充分阐明这个主题让我遵循.

Dan*_*ker 60

它声明该接口Blah旨在由特定类实现.这意味着您可以方便地说new Blah,运行时将知道要创建的对象 - 这通常是接口无法实现的.

如果你看一下BlahClass的生成声明,它可能Guid会与它相关联,可用于创建COM对象的实例.

  • @MohammadGoudarzi属性`[CoClass(typeof(BlahClass))]`提到类`BlahClass`,所以类必须存在于某处.它必须实现接口`Blah`.在从COM类型库生成的互操作程序集中,`BlahClass`实际上是一个COM对象(可能用C++,VB6,Delphi或其他完全实现的......) (2认同)