Using Data Contracts: be aware!

Just another “have to know” thing.

During deserialization, an uninitialized object is first created, without calling any constructors on the type. Then all data members are deserialized

Please read MSDN article for more details.

I’m so wondering: why did they do things working this way?..

Anyway, if you also want to create object without calling it’s constructor, just use FormatterServices.GetUninitializedObject