Насколько я понимаю, при десериализации datacontract, WCF не вызывает конструктор класса по умолчанию.
Однако, с другой стороны, все инициализаторы переменных для класса неявно выполняются непосредственно перед вызовом любого конструктора базового класса.
Так скажем, к примеру
[DataContract]
public class Foo()
{
Regex x = new Regex("abc");
[DataMember]
public int whatever {get; set;}
}
Regex x будет нулевым при десериализации объекта Foo, поэтому WCF также не вызывает конструктор базового класса?
Я знаю, что десериализация - это трехэтапный процесс [OnDeserializing] -> Десериализация -> [OnDeserialized]
У меня вопрос, что вызывает WCF для создания объекта?