我们正在将自定义序列化工具滚动到我们的项目中,并且遇到了通过原始值类型唯一标识每个对象的需求,该原始值类型可用作其“身份”的同义词。该值不需要有任何意义或组织,只需至少在序列化例程期间它是唯一且持久的。理想情况下,.net 会在内部维护一个唯一且持久的对象 ID,我们可以将其存储为对象的 ID。我知道每个对象都有一个GetHashCode
方法,但我们对值的全局唯一性没有信心。访问此类 ID 的另一个标准是该方法必须非常有效。
我已经看过GetHashCode
,垃圾收集器和编组的想法,还没有得到任何可靠的东西。