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

And*_*rei 16 c# com-interop

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

有人可以给我一个简要的概述,或者只是指向一些提供更多信息的文章的方向?

谢谢!

Dav*_*ams 8

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


Han*_*ant 8

你可能想看看ComVisibleAttribute类以了解更多有关你可以管理类可用于非托管代码的方式.

[Guid]与.NET Type.AssemblyQualifiedName完全等效.喜欢

System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5561934e089
Run Code Online (Sandbox Code Playgroud)

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

但是COM使用注册表.该程序集,其源代码,你看着被建成并注册的话可以找回来[的Guid]在注册表后.启动regedit.exe并导航到HKLM\Software\Classes\CLSID\{guid}.您将看到运行时用于加载CLR和程序集的注册键值.


Ash*_*iya 7

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

你可以在这里读更多关于它的内容.

GUIDAttributeClass