Эта страница от Microsoft описывает, как добиться установки свойства только из конструктора.
Вы можете сделать неизменное свойство двумя способами. Вы можете объявить
установить accessor.to быть приватным. Свойство устанавливается только в пределах
типа, но он неизменен для потребителей. Вы можете вместо этого объявить только
метод доступа get, который делает свойство неизменным везде, кроме
в конструкторе типа.
В C # 6.0, включенном в Visual Studio 2015, произошли изменения, позволяющие устанавливать только свойства из конструктора. И только от конструктора.
Следовательно, код можно упростить до свойства только для получения:
public class Thing
{
public Thing(string value)
{
Value = value;
}
public string Value { get; }
}