tags:

views:

49

answers:

1

Dear ladies and sirs.

In my unit tests I need to perform deep equality tests of two objects, which are expected to be identical. During the tests I discover some interesting fields in system types that break my code. Exception._xcode is the most recent one. Here are a couple of facts about this field:

  1. It is initialized to -532459699 in all the Exception constructors, except the custom deserialization constructor, where it is simply never mentioned (thanks Reflector).
  2. It is not marked with the NonSerialized attribute.

Given these facts, the field is reset to 0 after an Exception object is deserialized, which is certainly different from what it is set to in constructors.

I am wondering what is the raison d'être of this field?

Thanks.

+1  A: 

This field is used to store COM+ exception codes and it's value is assigned to the constant _COMPlusExceptionCode.

Darin Dimitrov
@Darin, I do not understand something. According to Reflector _COMPlusExceptionCode is a const int. It does not warrant the existence of the _xcode member variable, which looks like just occupying its space for nothing. Please, correct me.
mark