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

时间:2012-01-03 21:37:13

标签: c# attributes

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

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

为COM互操作引入了Guid属性 - 但没有什么可以阻止您(或任何其他第三方)将其重新用于其他用途。

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