I am trying to make the properties of class which can only be set through the constructor of the same class.
Make the properties have readonly backing fields:
public class Thing { private readonly string _value; public Thing(string value) { _value = value; } public string Value { get { return _value; } } }