По некоторым причинам мне нужно создать Словарь экземпляров PropertyInfo
, соответствующих свойствам некоторого класса (назовем его EntityClass
).
Хорошо, я могу использовать typeof(EntityClass).GetProperties()
.
Но мне также нужно определить значение для некоторых конкретных свойств (известных во время компиляции). Обычно я мог сделать одно из следующего:
EntityInstance.PropertyX = Value;
typeof(EntityClass).GetProperty("PropertyX").SetValue(EntityInstance, Value, null);
Чтобы заполнить мой словарь, мне нужно использовать PropertyInfo
экземпляров, а не просто устанавливать значения в обычном режиме. Но мне неудобно получать свойства по их строковым именам. Если какой-то EntityClass изменится, вместо ошибок компиляции возникнет много исключений. Итак, я спрашиваю:
Как получить PropertyInfo известного свойства без передачи имени строки? Мне бы очень хотелось, чтобы там было что-то вроде делегатов:
SomeDelegateType MyDelegate = EntityInstance.MethodX;
Идеально:
SomePropertyDelegate MyPropertyDelegate = EntityInstance.PropertyX;