Forums Neueste Beiträge
 

Reflection - GetMethod()

20/05/2008 - 23:13 von Thomas Kehl | Report spam
Hallo zusammen.

Ich habe eine Klasse A, die von einer Klasse B erbt. Klasse A hat eine
statische Methode Caption() und Klasse B eine statische Methode Caption()
und Visible(). Nun lade ich das Assembly sowie erstelle den mittels
Reflection:

Assembly dll = Assembly.LoadFrom(sFile);
Type type = dll.GetType(sID, true, true);

Das funktioniert auch tip top. type ist nun die Klasse A. Das Problem ist
nun, wenn ich mittels folgendem Aufruf

MethodInfo mi = type.GetMethod("Visible");

Die Methode Visible holen möchte, bekomme ich immer null. Wenn ich die
Methode "Caption" hole, kommt ein Objekt zurück. Wenn ich folgendes mache:

MethodInfo mi = type.BaseType.GetMethod("Visible")

dann funktionierts. Ich bin überzeugt, dass ich nicht den Umweg über
BaseType gehen muss - habe aber keine Ahnung, was ich falsch mache. Kann mir
jemand auf die Sprünge helfen? - Herzlichen Dank!

Beste Grüsse, Thomas
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
21/05/2008 - 00:05 | Warnen spam
"Thomas Kehl" <t.kehl (at) heeb.com> schrieb:
Ich habe eine Klasse A, die von einer Klasse B erbt. Klasse A hat eine
statische Methode Caption() und Klasse B eine statische Methode Caption()
und Visible(). Nun lade ich das Assembly sowie erstelle den mittels
Reflection:

Assembly dll = Assembly.LoadFrom(sFile);
Type type = dll.GetType(sID, true, true);

Das funktioniert auch tip top. type ist nun die Klasse A. Das Problem ist
nun, wenn ich mittels folgendem Aufruf

MethodInfo mi = type.GetMethod("Visible");

Die Methode Visible holen möchte, bekomme ich immer null.



Ich habe jetzt kein .NET zur Hand, aber 'GetMethod' hat eine Überladung,
welche 'BindingFlags' erwartet. Dort kannst Du evtl. durch Auswahl der
richtigen Optionen ('BindingFlags.Static') das gewünschte Ergebnis erzielen.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen