2 Stimmen

Reflektion zum Auffinden verschachtelter Klassen?

Ich habe eine Klasse, die in etwa so aussieht:

public class Parent
{
    public class Subclass
    {
    }
}

und mit Hilfe von Reflexion versuche ich, die Unterklasse zu finden

void main
{
    Parent p = new Parent();
    Type t = p.GetType();
    Type s = t.GetNestedType("Subclass"); //s is not set
}

Das funktioniert nicht, weil es offenbar keine verschachtelten Typen gibt. Wie kann ich den Typ der Unterklasse herausfinden? Der Grund, warum ich s benötige, ist, dass ich später .GetMethod("someMethod").Invoke(...) darauf aufrufen möchte.

6voto

BFree Punkte 100035

Ich habe gerade genau das Gleiche versucht, und es hat funktioniert:

    public class ParentClass
    {
        public class NestedClass
        {

        }
    }

       private void button1_Click(object sender, EventArgs e)
        {
            Type t = typeof(ParentClass);
            Type t2 = t.GetNestedType("NestedClass");
            MessageBox.Show(t2.ToString());
        }

Sind Sie sicher, dass die NestedClass öffentlich ist?

0 Stimmen

Ah, ich habe über die falsche Elternklasse nachgedacht. Danke für die Überprüfung des Codes!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X