2

我正在创建一个 C# 库并将向它公开一个 COM 接口。

我了解执行此操作所需的步骤,即

  1. 确保分配了 GUID,例如: [assembly: Guid("dde7717b-2b75-4972-a4eb-b3d040c0a182")]
  2. 确保 COMVibile 属性为 True
  3. 在类上放置一个 GUID 属性,例如[GuidAttribute("4df74b15-d531-4217-af7e-56972e393904")]
  4. 使用 Regasm 注册。

我的问题是这个。如果我定义了部分类。我需要添加GuidAttribute到这两个类吗?

事实上,考虑到这一点,我猜这个问题适用于任何属性(例如Serializable)。

任何帮助,将不胜感激。谢谢。

4

2 回答 2

5

如果您将属性两次应用于同一个类(无论是在同一个文件中还是在两个不同的文件中),那么该类将应用该属性两次。在两个文件中定义的部分类不是两个类,它只是在多个文件中部分定义的一个类。所以,不,不要在每个文件中再次重复 GuidAttribute。

于 2010-03-19T11:40:08.027 回答
2

在编译时,部分类型定义的属性被合并。例如,以下声明:

[System.SerializableAttribute]
partial class Moon { }

[System.ObsoleteAttribute]
partial class Moon { }

相当于:

[System.SerializableAttribute]
[System.ObsoleteAttribute]
class Moon { }
于 2010-03-19T11:40:29.730 回答