System.Runtime.InteropServices.GuidAttribute是否用于除COM互操作之外的任何内容

我试图弄清楚为什么这个属性被添加到一个类。 Google在搜索时只会提供与COM相关的资料; 但该应用程序不通过COM做任何事情。

签到评论没有提供任何启示(它提到了另一个,同时做出的看似无关的变化); 也没有在更改的任何一方阅读我的电子邮件流量数天。

无论您是否使用该属性,.NET中的类型始终都有一个Guid。 可通过Type.GUID属性获得。 CLR从类型定义中自动生成一个,确保相同的类型具有相同的Guids,无论它生成在哪台机器上。 请注意,这与通常生成Guid的方式有很大不同。

如果要覆盖自动生成的guid,则只能使用[Guid]属性。 这仅适用于COM互操作方案,以获取与现有COM接口或coclass匹配的声明。 它应该始终在[ComVisible]或[ComImport]属性附近。

Guid属性是为COM互操作引入的 – 但没有什么能阻止你(或任何其他第三方)将其重新用于其他用途。

通常,属性提供可供其他代码使用的附加信息(“元数据”)。