Могу ли я получить подпись делегата C # по его типу? - PullRequest
53 голосов
/ 09 января 2009

Существует ли простой способ использования отражения для получения списка параметров для делегата, если у вас есть информация о его типе?

Например, если я объявлю тип делегата следующим образом

delegate double FooDelegate (string param, bool condition);

и позже получите информацию о типе для этого типа делегата следующим образом

Type delegateType = typeof(FooDelegate);

Можно ли получить возвращаемый тип (double) и список параметров ({string, bool}) из информационного объекта этого типа?

1 Ответ

95 голосов
/ 09 января 2009
    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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...