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

bla*_*iet 21 .net c# guid

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

我已经在我的机器上本地测试了它,它似乎总是一样的,但我不确定我是否可以依赖它在机器之间总是相同的.

Ani*_*Ani 15

请参阅:System.Type.GUID稳定性.看来该方法的当前实现依赖于CLR本身实现的内部调用.除非微软澄清了自动生成的Guids的合同(Type.GUID文档目前对此问题保持沉默),否则我不会依赖于观察到的行为.为了确保一致性,我建议使用.明确地解决相关类型GuidAttribute.

  • 如果您感到好奇,[这里是 CLR 中的代码](https://github.com/dotnet/coreclr/blob/7f7d8276e65059a37001aaa5ce9af7e82249f4a0/src/vm/methodtable.cpp#L7377) 在 to.GUID 上转发 (2认同)