Я не думаю, что вам понадобится установщик, поскольку он всегда будет создавать новый словарь, как другие указывали, вызывая установщик в конструкторе. Лучший подход:
public Dictionary<string, string> MyProp { get; internal set; }
public MyClass() { MyProp = new Dictionary<string, string>(); }
Здесь вы использовали внутренний установщик для создания словаря. После этого, если вы хотите добавить элемент в словарь, вы должны сделать это в своем коде:
InstanceOfMyClass.MyProp.Add(blah, blah);
, где вы используете метод получения, чтобы получить объект словаря, затем выполните Добавить, чтобы добавить новый элемент. Вы не можете вызвать сеттер из своего кода и случайно уничтожить словарь, потому что он будет выглядеть только для чтения за пределами MyClass.