2011-01-29 6 views
12

私は個人的なプロジェクトのために反射重視の仕事をしています。私は、Typeオブジェクトを通じて代理人の戻り値型にアクセスする必要があります。これはちょっとしたメタですので、ここに例があります。リバースを介してデリゲート型の戻り値の型を取得するにはどうすればよいですか?

Type type = typeof(Func<Foo, Bar, Baz>); 
// ???? 
// Use reflection to come to the following expected result 
Type result = typeof(Baz); 

どうすればいいですか?

Delegateにキャストするそのタイプのインスタンスはありません。

答えて

16

デリゲート型のInvokeメソッドを表すMethodInfoを取得して、そのメソッドの戻り値の型を取得する方法もあります。

var result = type.GetMethod("Invoke").ReturnType; 
関連する問題