Невозможно извлечь значение свойства с помощью отражения

У меня есть два типа в этом сценарии - тип 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: 'Объект не соответствует целевому типу'.

Я что-то здесь неправильно истолковываю?


person Cranialsurge    schedule 19.07.2018    source источник
comment
Разобрался, мне пришлось передать 'instanceOfTypeA' вместо targetTypeA   -  person Cranialsurge    schedule 19.07.2018


Ответы (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);
person Cranialsurge    schedule 19.07.2018