web-dev-qa-db-ja.com

タイプごとにC#デリゲートの署名を取得できますか?

タイプ情報がある場合、リフレクションを使用してデリゲートのパラメーターリストを取得する簡単な方法はありますか?

たとえば、デリゲート型を次のように宣言すると、

delegate double FooDelegate (string param, bool condition);

その後、次のようにそのデリゲート型の型情報を取得します

Type delegateType = typeof(FooDelegate);

その型情報オブジェクトから戻り値の型(double)とパラメーターリスト({string、bool})を取得することは可能ですか?

53
fastcall
    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);
    }
96
Marc Gravell