Нет, не принято считать, что свойства будут установлены при запуске конструктора.Противоположность верна.Конструктор - это самый первый фрагмент кода, который запускается при создании экземпляра объекта.Невозможно установить свойства до тех пор, пока конструктор не начнет выполняться.
Процесс десериализации XML примерно выглядит следующим образом
- Вызов конструктора без параметров
- Установка свойств для их десериализованных значений
Чтобы обойти это, используйте фабричный метод для десериализации, а затем запустите логику, которая зависит от устанавливаемых свойств.Например
class MyClass {
...
public static MyClass Deserialize(string xmlContents) {
var local = ... // Do the XML deserialization
local.PostCreateLogic();
return local;
}
}