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