62 Stimmen

Kann ich die Signatur eines C# Delegaten durch seinen Typ erhalten?

Gibt es eine geradlinige Art und Weise mit Reflexion, um die Parameterliste für einen Delegaten zu erhalten, wenn Sie seine Typinformationen haben?

Ein Beispiel: Wenn ich einen Delegatentyp wie folgt deklariere

delegate double FooDelegate (string param, bool condition);

und später die Typinformationen für diesen Delegatentyp wie folgt abrufen

Type delegateType = typeof(FooDelegate);

Ist es möglich, den Rückgabetyp (double) und die Parameterliste ({string, bool}) aus diesem Typ-Info-Objekt abzurufen?

116voto

Marc Gravell Punkte 970173
    MethodInfo method = delegateType.GetMethod("Invoke");
    Console.WriteLine(method.ReturnType.Name + " (ret)");
    foreach (ParameterInfo param in method.GetParameters()) { 
        Console.WriteLine("{0} {1}", param.ParameterType.Name, param.Name);
    }

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