मैं दो कार्य है:Type.GetMethod सभी तरीके के माध्यम से पाशन के बिना जेनेरिक MethodInfo जाओ
public void DeleteRecord(int id);
public T DeleteRecord<T>(int id);
यहाँ कैसे मैं गतिशील रूप से सामान्य आह्वान करने के लिए कोशिश कर रहा है विधि:
MethodInfo method = typeof(DAL).GetMethod("DeleteRecord", new[] { typeof(int) });
MethodInfo generic = method.MakeGenericMethod(returnType);
object o = generic.Invoke(null, new object[] { dbname, spname, expandoAsDictionary });
पहली पंक्ति टी एक अपवाद है क्योंकि यह एक अस्पष्ट परिभाषा पाता है। क्या GetMethods
का उपयोग किए बिना जेनेरिक विधि के MethodInfo
और IsGenericMethod
के लिए पूछे जाने वाले परिणामों के माध्यम से लूपिंग करने का कोई तरीका है?
संपादित करें: कृपया 'डुप्लिकेट' को हटा दें क्योंकि दोनों सुझाए गए उत्तरों या तो इसे आंतरिक लूप (GetMethods()। चुनें ...) के साथ हल करें या ओवरलोड को भी संबोधित न करें।
यह एक डुप्लिकेट नहीं है। मुझे पहले से ही पता है कि प्रतिबिंब के साथ एक सामान्य विधि को कैसे कॉल करें, लेकिन मेरे पास एक अस्पष्ट परिभाषा अपवाद है। कृपया मेरे प्रश्न को पढ़ें। –
यह एक डुप्लिकेट है, लेकिन मैंने गलत सवाल लिंक किया है, क्षमा करें ... यहां सही है: http://stackoverflow.com/q/5218395/201088। –
अभी भी कोई डुप्लिकेट नहीं है! मैंने स्पष्ट रूप से पूछा कि GetMethods() फ़ंक्शन का उपयोग किये बिना इसे कैसे किया जाए। आपके लिंक में चिह्नित उत्तर इसका उपयोग कर रहा है ... –