我在我们正在使用的第三方库中发现了以下类似的代码。
[CoClass(typeof(BlahClass))]
public interface Blah : IBlah
{
}
这段代码究竟在做什么?MSDN文档并没有充分解释,无法让我理解。
Blah
应由特定类实现。这意味着您可以方便地说 new Blah
,运行时将知道要创建什么对象 - 这在接口中通常是不可能的。Guid
,可用于创建 COM 对象的实例。[CoClass(typeof(BlahClass))]
提到了类 BlahClass
,因此该类必须存在于某个地方。并且它必须实现接口 Blah
。在从 COM 类型库生成的互操作程序集中,BlahClass
实际上将是一个 COM 对象(可能是用 C++、VB6、Delphi 或其他语言实现的)。 - Daniel Earwicker
CoClass
是 COM 的概念。如果你不了解 COM,那么你就无法理解CoClass
。 - John Saunders