var version = ...
shadows свойство с локальной переменной;Это означает, что назначение хранится в локальной переменной с именем version
, а не в свойстве с именем version
.
this.version = ...
будет делать то, что вы хотите.
Кстати, изСоглашение в C #, локальные переменные начинаются с букв нижнего регистра, как и у вас, но свойства начинаются с заглавных букв - соглашения, подобные этим, могут помочь устранить проблемы с теневым копированием, которые вы здесь испытывали.