当你在Visual Studio中创建一个新的C#项目时,生成的AssemblyInfo.cs文件包括一个指定程序集GUID的属性。该属性上面的注释指出,如果“此项目暴露给COM”,则会使用它。
我的程序集中没有需要对COM可见的类型,因此我使用了[assembly: ComVisible(false)]进行标记。那么指定GUID有什么意义吗?
我的感觉是“没有”,那么为什么默认的AssemblyInfo.cs文件包含[assembly: ComVisible(false)]和[assembly: Guid("...")]两个元素?
编辑:
总之,回答说明只有在使用COM互操作时才需要指定GUID。因此,在我的情况下,GUID不是必需的。
sharptooth进一步解释说,[assembly: ComVisible(false)]并不意味着不使用COM互操作,因为可以为单个类型覆盖ComVisible。正是因为这个原因,缺省的AssembyInfo.cs包含了[assembly: ComVisible(false)]和GUID两个元素。
我的程序集中没有需要对COM可见的类型,因此我使用了[assembly: ComVisible(false)]进行标记。那么指定GUID有什么意义吗?
我的感觉是“没有”,那么为什么默认的AssemblyInfo.cs文件包含[assembly: ComVisible(false)]和[assembly: Guid("...")]两个元素?
编辑:
总之,回答说明只有在使用COM互操作时才需要指定GUID。因此,在我的情况下,GUID不是必需的。
sharptooth进一步解释说,[assembly: ComVisible(false)]并不意味着不使用COM互操作,因为可以为单个类型覆盖ComVisible。正是因为这个原因,缺省的AssembyInfo.cs包含了[assembly: ComVisible(false)]和GUID两个元素。