Вы можете добиться того же, используя свойство по умолчанию для вашего класса и коллекции. При условии, что вам всегда будут нужны строки, вы можете использовать класс Dictionary в качестве свойства по умолчанию.
Тогда в конструкторе вы можете инициализировать myDictionary["s"] = "some string";
Затем вы можете использовать myClass как коллекцию, поэтому myClass ["s"] вернет "некоторую строку".
Отражение обычно является показателем того, что вы не создали API для выполнения нужной вам работы. Если у вас есть код для изменения, я рекомендую использовать свойство по умолчанию.
См. Эту статью MSDN :