在C#中的类上面出现的Guid属性是什么?

时间:2010-09-21 12:10:58

标签: c# com-interop

我最近选择了一些C#代码,其中一个类上面有一个Guid属性。我不明白这是什么或它用于什么。

有人可以给我一个简要介绍它的内容,或者只是指出一些提供更多相关信息的文章?

谢谢!

3 个答案:

答案 0 :(得分:8)

它是表示相关类的COM标识符。该类是为COM互操作而设计的。

答案 1 :(得分:8)

您可能需要查看ComVisibleAttribute类,以了解有关使托管类可用于非托管代码的方法的更多信息。

[Guid]与.NET Type.AssemblyQualifiedName完全等效。像

System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5561934e089

明显的区别是.NET类型名称更容易被人类阅读。有必要允许程序发现需要加载哪些DLL才能使用类型。在.NET的情况下,通常通过枚举GAC找到程序集。它是基于文件的。

然而,

COM使用注册表。在您看到的源代码构建和注册的程序集之后,您可以在注册表中找回[Guid]。启动regedit.exe并导航到HKLM\Software\Classes\CLSID\{guid}。您将看到运行时用于加载CLR和程序集的注册键值。

答案 2 :(得分:7)

Guid(全球唯一标识符)用于识别外部世界的组件。当您编写将用作COM(组件对象模型)的项目时,您将必须提供唯一的名称。因此,您需要应用GUID属性。

您可以在此处详细了解。

GUIDAttributeClass