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

标签 c# attributes

我想弄清楚为什么要将此属性添加到类中。当我搜索时,Google 只会显示与 COM 相关的 Material ;但应用程序不通过 COM 执行任何操作。

checkin 注释没有提供任何启发(它指的是同时进行的其他看似无关的更改);也没有在更改的任何一方阅读几天我的电子邮件流量。

最佳答案

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

如果您想覆盖自动生成的 guid,您只能使用 [Guid] 属性。这仅在 COM 互操作场景中有用,可以获取与现有 COM 接口(interface)或组件类匹配的声明。它应该始终靠近 [ComVisible] 或 [ComImport] 属性。

关于c# - System.Runtime.InteropServices.GuidAttribute 是否用于除 COM 互操作之外的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718967/

相关文章:

c# - 从 WebAPI Controller 重定向到子域 - 需要 CORS?

c# - 支持重复的多维键的字典?

c# - 如何在 C# 中检索 URL 协议(protocol)请求

c# - 将值传递给自定义属性

magento - 我可以在 magento 1.5 中为产品分配多个属性集吗?如果不是如何处理这个问题?

python - 如何更改python中函数对象的属性?

R通过使用列索引从避风港标记的数据框中提取attributes(x)$label

c# - 为什么 ReferenceEquals(s1,s2) 返回 true

c# - 如何格式化签名货币

java - 使用 EL 对空属性进行快速失败的最简单方法?