自动生成的.NET类型GUID是否一致?

25

C#类型自动生成的GUID是否一致?例如,如果我获取我的接口IFoo的GUID(typeof(IFoo).GUID),第一次运行程序时,每次运行程序都会得到相同的GUID吗?

我已在本地计算机上进行了测试,似乎总是相同的,但我不确定它是否始终在不同的计算机上都是相同的。


我认为那个GUID根本没有被生成,而是曾经生成过一次,因此它总是相同的。 - Rhapsody
2个回答

16

参见:System.Type.GUID 稳定性。看起来当前该方法的实现依赖于 CLR 自身实现的内部调用。除非 Microsoft 阐明自动生成的 Guids 的合同(Type.GUID 文件目前对此问题保持沉默),否则我不会依靠观察到的行为。为确保一致性,建议显式地为涉及的类型添加GuidAttribute


谢谢。我试图避免显式定义GUID,但似乎这将是最安全的路线。 - blachniet
2
如果你好奇的话,这里是CLR中的代码,Type.GUID正在转发。 - Scott Chamberlain

0

这个没有文件记录,所以我不会完全依靠它们。再说,实现方法将来可能会改变。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接