Невозможно извлечь значение свойства, используя отражение
У меня есть два типа в этом сценарии - тип A и тип B. Тип A присутствует на более высоком уровне, а не там, где я реализую код ниже, и у него есть свойство типа B. Тип B определяется на уровне (нижний уровень, думаю, платформа), в которой я работаю. Я пытаюсь получить доступ к свойству типа A, которое относится к типу B. Если я правильно понимаю, с помощью отражения я смогу отразить тип A и получить этот объект (типа B) следующим образом
Type targetTypeA = instanceOfTypeA.GetType();
PropertyInfo someProperty = instanceOfTypeA.GetProperty("PropertyName"); // again just to clarify, the type of this property is 'B' and present in this layer that I'm working in.
object propertyValue = someProperty.GetValue(targetTypeA, null);
Метод GetValue() вызывает следующее исключение: System.Reflection.TargetException: "Объект не соответствует типу цели".
Я что-то здесь неправильно истолковываю?
1 ответ
Я передавал "Тип" вместо фактического экземпляра. Следующий код работает:
Type targetTypeA = instanceOfTypeA.GetType();
PropertyInfo someProperty = instanceOfTypeA.GetProperty("PropertyName"); // again just to clarify, the type of this property is 'B' and present in this layer that I'm working in.
object propertyValue = someProperty.GetValue(instanceOfTypeA, null);