Я пытаюсь сделать свойства класса, который может только быть установлен через конструктора того же класса.
Сделать свойства поддерживающими поля только для чтения:
public class Thing
{
private readonly string _value;
public Thing(string value)
{
_value = value;
}
public string Value { get { return _value; } }
}