【问题标题】:Are automatically generated GUIDs for types in .NET consistent?为 .NET 中的类型自动生成的 GUID 是否一致?
【发布时间】:2011-04-13 21:35:17
【问题描述】:

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

我已经在我的机器上进行了本地测试,它似乎总是一样的,但我不确定我是否可以依赖它在机器上总是一样的。

【问题讨论】:

  • 我认为该 GUID 根本没有生成,而是生成了一次,因此它总是相同的。

标签: c# .net guid


【解决方案1】:

请参阅:System.Type.GUID stability。似乎该方法的当前实现依赖于由 CLR 本身实现的内部调用。除非 Microsoft 澄清自动生成的 Guid 的合同(Type.GUID 文档目前对此问题保持沉默),否则我不会依赖观察到的行为。为确保一致性,我建议使用GuidAttribute 明确修饰有问题的类型。

【讨论】:

  • 谢谢。我试图避免明确定义 GUID,但似乎这将是最安全的路线。
  • 如果您好奇,here is the code in the CLR Type.GUID 正在转发到。
【解决方案2】:

它没有记录,所以我不会完全依赖它们,说实现在未来可能会或可能不会改变。

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 2011-08-15
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 2017-01-06
    相关资源
    最近更新 更多