Ok Objekt MEMBER, ich eine Schnittstelle haben, nennen wir es.net Reflexion der Suche Objekt von der Schnittstelle
public interface bar {
string Foo;
}
auch eine Klasse, die die Schnittstelle
public fooBar : bar {
public string Foo {get; set;}
}
implementiert Ich habe dann eine Eigenschaft hängt von einem anderen Objekt, das eine Liste von Schnittstellen "bar" enthält, die verschiedene Implementierungen enthalten, so
public list<bar> listOfBars;
Nun, wenn ich einen Ausdruck Baum/Funktion wie so
function(parentObj x) { x.listOfBars(0).Foo;}
kann ich die Member off des Ausdrucksbaums erhalten. Die Memberinfo verweist jedoch auf die Interface-Methode und ihre Klasse ist die Schnittstelle. Das funktioniert fast, aber ich muss wissen, was seine Elternklasse ist, also müsste ich vom mattressinfo-Objekt finden und sehen, dass es eine Methode von der "bar" -Schnittstelle aufruft, und der Klassentyp ist "fooBar". Gibt es eine Möglichkeit, dies zu tun, ich habe durch das Mitgliedinfo-Objekt im Überwachungsfenster gegraben und kann nicht zum übergeordneten Typ. Ich könnte jedoch etwas vermissen.
Sorry, die meisten der Code ist in VB, und wenn ich die C# getippt ich von möglicherweise nicht die Syntax ganz Recht hatte, . Die Schnittstelle ist Setup wie Sie sagten öffentliche Schnittstelle bar {string Foo {get; set;}} Auch das IS-Schlüsselwort wird nicht funktionieren, da ich keine Case-Anweisung aller meiner Klassen haben möchte. Wenn ich das Mitglied aus der Reflexion wie so greifen propertyMethod = TryCast (Ausdruck.Body, System.Linq.Expressions.MemberExpression) Es erzählt mir nur über die Schnittstelle und die Schnittstelle Eigenschaft der Baum zeigt auf. Ich kann den Klassennamen der Objekte oder nichts erreichen. – Josh