繁体   English   中英

C#部分类和COM接口

[英]C# Partial Class and COM Interface

我正在创建一个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 )。

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

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

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

[System.SerializableAttribute]
partial class Moon { }

[System.ObsoleteAttribute]
partial class Moon { }

等效于:

[System.SerializableAttribute]
[System.ObsoleteAttribute]
class Moon { }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM