Я использую широко используя foovar.GetType().GetProperty("PropertyName").GetValue(foovar)
, чтобы получить значение свойства переменной переменной через отражение. Но, похоже, он не работает с типами интерфейсов.Получить свойства интерфейса через отражение
IFoo foo = GetFoo();
string fooName= foo.Name; //It works perfectly
Я работаю с третьей стороной, поэтому у меня нет доступа к реализации. Существует свойство «Имя», и я могу получить значение. Но не может через отражение.
Когда я пытаюсь string s = (string)foo.GetType().GetProperty("Name").GetValue(foo);
я получить нулевую ошибку: нет свойства «Name»
Я проверил PropertyInfo[] pi = foo.GetType().GetProperties();
и я могу увидеть около 200 свойств, ни один из них не является «Name». На самом деле многие другие «свойства intellisense» не появляются.
¿Как я могу получить значение свойства типа интерфейса?
Спасибо!
Зачем вам нужно размышление? Вы пытались взглянуть на имплантацию с помощью ILSpy, dotPeek или Reflector? –
У меня есть тип, который мне нужен для доступа во время выполнения. У него много, разных типов. Я получаю имена свойств и типы свойств, которые мне нужно использовать каждый раз через базу данных или XML, а затем использовать рефлексию и дженерики для получения vaules. – Kaikus