में विधि के लिए जेनेरिक प्रकार का कॉल प्राप्त करें। मैं गतिशील वस्तुओं के साथ काम करना शुरू कर रहा हूं। नेट और मैं कुछ नहीं कर सकता हूं।डायनामिक ऑब्जेक्ट
मेरे पास एक कक्षा है जो डायनामिक ऑब्जेक्ट से प्राप्त होती है, और मैं TryInvokeMember विधि को ओवरराइड करता हूं।
उदा।
class MyCustomDynamicClass : DynamicObject
{
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
{
// I want to know here the type of the generic argument
}
}
और वह विधि मैं मंगलाचरण में सामान्य तर्क का प्रकार (यदि हो तो) जानना चाहता हूँ अंदर।
उदा। अगर मैं निम्नलिखित कोड आह्वान, मैं अपने गतिशील वस्तु
dynamic myObject = new MyCustomDynamicClass();
myObject.SomeMethod<bool>("arg");
myObject.SomeOtherMethod<int>("arg");
वर्तमान में
की overrided विधि के अंदर System.Boolean और System.Int32 का मूल्य प्राप्त करने के लिए अगर मैं overrided विधि मैं प्राप्त कर सकते हैं अंदर एक ब्रेकपाइंट जगह चाहते हैं लागू होने वाली विधि का नाम ("कुछ विधि" और "कुछ अन्य विधि", और तर्कों के मान भी, लेकिन सामान्य प्रकार नहीं)।
मैं इन मानों को कैसे प्राप्त कर सकता हूं?
धन्यवाद!
अधिकतर आपको प्रतिबिंब का उपयोग करके विधि को देखने की आवश्यकता है। MethodInfo सामान्य प्रकार के तर्कों तक पहुंच प्रदान करता है। –
समस्या यह है कि विधि मौजूद नहीं है, मेरे पास अभी बाइंडर ऑब्जेक्ट तक पहुंच है, जिसमें एक कॉलइन्फो संपत्ति है, जिसमें कोई जेनेरिक जानकारी नहीं है। – willvv
आप जानते हैं, मैं थोड़ी देर के लिए इस के नमूने का प्रयास कर रहा हूं, और मुझे नहीं पता कि जेनेरिक जानकारी कहां है। यह वास्तव में वास्तव में एक अच्छा सवाल है। – Tejs