【问题标题】:What does the C# CoClass attribute do?C# CoClass 属性有什么作用?
【发布时间】:2011-10-21 02:44:09
【问题描述】:

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

[CoClass(typeof(BlahClass))]
public interface Blah : IBlah
{
}

这到底是做什么的? msdn 文档没有充分阐明主题,我无法理解。

【问题讨论】:

标签: c# coclass


【解决方案1】:

它声明接口Blah 旨在由特定类实现。这意味着您可以方便地说new Blah 并且运行时将知道要创建什么对象——这在接口中通常是不可能的。

如果您查看为 BlahClass 生成的声明,它可能具有与之关联的 Guid,可用于创建 COM 对象的实例。

【讨论】:

  • 好的,根据我在周围代码中看到的内容,这是有道理的。谢谢!除了 COM 的东西,这种方法与仅实现接口相比有什么优势吗?
  • 我需要您@RobertGowland 评论的答案。实现这个类或者声明接口就足够了吗?
  • @MohammadGoudarzi 属性[CoClass(typeof(BlahClass))] 提到了类BlahClass,因此该类必须存在于某处。它必须实现接口Blah。在从 COM 类型库生成的互操作程序集中,BlahClass 将实际上是一个 COM 对象(可能完全用 C++、VB6、Delphi 或其他东西实现......)
猜你喜欢
  • 1970-01-01
  • 2019-10-16
  • 1970-01-01
  • 2018-05-16
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多