По некоторым причинам мне нужно создать словарь из 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;
не могли бы вы описать сценарий? Я имею в виду код до и после модификации Entity. Кроме того, как вы можете ожидать, что переданное значение будет иметь один и тот же тип свойства после модификации? –
Возможный дубликат [Как получить PropertyInfo определенного свойства?] (Http://stackoverflow.com/questions/491429/how-to-get-the-propertyinfo-of-a-specific-property) – nawfal