Это произойдет, если ваш класс был сериализован и десериализован DataContractSerializer (например, при отправке данных между клиентом и сервером)
Некоторые ссылки: DataContractSerializer не вызывает мой конструктор?
Если это так, то одно из возможных решений, которое сработало для меня: https://stackoverflow.com/a/9419943/724944
Таким образом, быстрая проверка и исправление этой проблемы (я предполагаю, что вы хотите инициализировать поле самостоятельно, а не сериализовать его) состояла бы в создании метода:
[OnDeserializing]
private void OnDeserializing(StreamingContext c)
{
_Wagon = initializeWagon();
}
однако, как вы, вероятно, заметили, вы не сможете пропустить Wagon во время десериализации - вам придется инициализировать его по-другому.
С другой стороны, если вы хотите сериализовать _Wagon, выставьте его как public [DataMember]
свойство