2011-01-29 13 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

एक तरीका MethodInfo प्रतिनिधि-प्रकार के Invoke विधि का प्रतिनिधित्व करने के लिए होगा, और उसके बाद विधि का रिटर्न प्रकार पुनर्प्राप्त करें।

var result = type.GetMethod("Invoke").ReturnType; 
संबंधित मुद्दे