Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.Runtime.InteropServices.GuidAttribute是否用于除COM互操作之外的任何内容_C#_Attributes - Fatal编程技术网

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

C# System.Runtime.InteropServices.GuidAttribute是否用于除COM互操作之外的任何内容,c#,attributes,C#,Attributes,我试图弄清楚为什么这个属性被添加到一个类中。谷歌只是在我搜索的时候才找到与COM相关的资料;但是应用程序没有通过COM做任何事情 签入注释没有提供任何启示(它指的是另一个,似乎与同时进行的更改无关);在这一变化的任何一方,阅读我的电子邮件流量也不会持续几天。该属性是为COM互操作引入的-但没有任何东西阻止您(或任何其他第三方)将其重新用于其他用途 属性通常提供其他代码可以使用的附加信息(“元数据”) 无论是否使用属性,.NET中的类型始终具有Guid。可通过Type.GUID属性访问。CLR自动

我试图弄清楚为什么这个属性被添加到一个类中。谷歌只是在我搜索的时候才找到与COM相关的资料;但是应用程序没有通过COM做任何事情

签入注释没有提供任何启示(它指的是另一个,似乎与同时进行的更改无关);在这一变化的任何一方,阅读我的电子邮件流量也不会持续几天。

该属性是为COM互操作引入的-但没有任何东西阻止您(或任何其他第三方)将其重新用于其他用途


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

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


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

它只是元数据。CLR将使用它进行COM互操作;但是您可以像其他属性一样将其用于自己的目的(尽管我建议您创建自己的属性);但如果我滥用了它的预期用途之外的东西,我几乎肯定会在源代码或签入评论中留下一段文字来解释我为什么这么做。我怀疑这是一个从错误开始的未删除的垃圾代码。我想确保该属性没有任何其他合法用途,我需要首先排除。