Хорошо, у меня есть интерфейс, позволяет называть его.net отражение нахождения объекта от интерфейса MemberInfo объекта
public interface bar {
string Foo;
}
также есть класс, который реализует интерфейс
public fooBar : bar {
public string Foo {get; set;}
}
Я тогда недвижимость висящий на другом объекте, который содержит список интерфейсов «бар», которые содержат различные реализации, например,
public list<bar> listOfBars;
Теперь, когда я использую выражение дерева/функции, как так
function(parentObj x) { x.listOfBars(0).Foo;}
я могу получить MemberInfo прочь дерева выражений. Memberinfo хотя указывает на метод интерфейса, а его класс - интерфейс. Это почти работает, но мне нужно знать, что такое его родительский класс, поэтому мне нужно было бы от объекта memberinfo, чтобы найти и увидеть, как его вызов метода отключен от «барного» интерфейса, а тип класса - «fooBar». Есть ли способ сделать это, я прорыл объект memberinfo в окне просмотра и не могу перейти к родительскому типу. Возможно, я что-то пропустил.
К сожалению, большая часть кода в VB, и когда я печатал на C# я майского не имел синтаксис весь путь правильный , Интерфейс настроен так, как вы сказали публичный бар интерфейса {строка Foo {get; set;}} Также ключевое слово IS не будет работать, так как я не хочу иметь оператор case всех моих классов. Когда я захватываю элемент из отражения так propertyMethod = TryCast (выражение.Body, System.Linq.Expressions.MemberExpression) Он только рассказывает мне об интерфейсе и свойстве интерфейса, на которое указывает дерево. Я не могу попасть в имя класса реального объекта или ничего. – Josh