2009-12-20 57 views
4

在我的单元测试中,我需要对两个对象进行深度相等测试,这两个对象预期是相同的。在测试过程中,我发现系统类型中一些有趣的字段会破坏我的代码。 Exception._xcode是最近的一个。这里有几个关于这个领域的事实:什么是.NET异常类型的_xcode字段?

  1. 它被初始化为-532459699所有Exception构造,除了自定义反序列化的构造,它仅仅是从未提及(感谢反射)。
  2. 它没有标记为NonSerialized属性。

鉴于这些事实,在Exception对象被反序列化后,该字段将重置为0,这与在构造函数中设置的值完全不同。

我想知道这个领域存在的理由是什么?

谢谢。

+0

我发现这同样令人沮丧。感谢您提出问题。 – 2013-07-29 05:26:40

回答

1

此字段用于存储COM +异常代码,并将其值分配给常量_COMPlusExceptionCode

+0

@Darin,我不明白。根据Reflector _COMPlusExceptionCode是一个const int。它不保证_xcode成员变量的存在,它看起来就像占用它的空间。请纠正我。 – mark 2009-12-20 10:07:05