पर गतिशील ऑब्जेक्ट में सदस्यों को जोड़ना मैं .NET 4.0 में डायनामिक ऑब्जेक्ट मॉडल की खोज कर रहा हूं। एप्लिकेशन वह है जहां किसी ऑब्जेक्ट को किसी प्रकार की टेक्स्ट/एक्सएमएल फ़ाइल के माध्यम से वर्णित किया जाएगा, और प्रोग्राम को उस फ़ाइल को पढ़ने पर एक ऑब्जेक्ट बनाना होगा।रनटाइम
डायनामिक ऑब्जेक्ट के साथ, हम सदस्यों को आसानी से जोड़ सकते हैं, बशर्ते कि हम सदस्य का नाम प्राथमिकता दें। लेकिन, अगर हम सदस्य के नाम को जोड़ने के लिए भी नहीं जानते हैं तो क्या होगा? क्या गतिशील बनाने का कोई तरीका है?
उदाहरण के लिए, मैं सदस्यों के Property1 'के साथ एक वस्तु बनाने की जरूरत कहते हैं,' Property2 ', और' PropertyA 'के साथ एक और वस्तु है, और के रूप में पाठ/एक्सएमएल फ़ाइल द्वारा वर्णित' PropertyB '। मैं इस जानकारी के आधार पर गतिशील रूप से एक वस्तु कैसे बना सकता हूं?
अद्यतन मैं इस पोस्ट से कुछ विचार है:
dynamic d = new PFDynamicChannel();
PFCouplings c = ((PFChannel)d).Coupling;
d.NewProperty = "X";
कारण मैं उपयोग करने के लिए एक शब्दकोश है इच्छा नहीं है: http://www.codeproject.com/KB/cs/dynamicincsharp.aspx
इस कार्यान्वयन मेरा पीछा कर की तरह कुछ करने की अनुमति देता TryGetMember का उपयोग करने के लिए, और TrySetMember विधियों को मैं ओवरराइड कर सकता हूं, जिसके अंतर्गत मैं प्रोग्राम के लिए जरूरी घटनाओं को बढ़ा सकता हूं।
इस तरह, मैं बेस क्लास (पीएफसीएचनल) से प्राप्त कर सकता हूं, लेकिन मैं फ्लाई पर सदस्यों को भी जोड़ सकता हूं। लेकिन, मेरी समस्या यह है कि मैं रनटाइम तक नई संपत्ति का नाम नहीं जानूंगा। और, मुझे वास्तव में नहीं लगता कि गतिशील वस्तु मुझे फ्लाई पर नई गुण जोड़ने की अनुमति देती है। यदि ऐसा है, तो मैं इस क्षमता को देने के लिए ExpandoObject का उपयोग कैसे कर सकता हूं?
आप अभी भी समझ में नहीं आता क्यों गतिशील और ExpandoObject .NET में मिला। कारण आप जो चाहते हैं उसके सटीक oposite था। ExpandoObject अभी भी शब्दकोश का उपयोग करता है, अच्छी तरह से यह शब्दकोश है। कंपाइलर केवल "संपत्ति" कॉल को शब्दकोश [NameOfProperty] में अनुवाद करता है। यह कोड बहुत अच्छा बनाता है। लेकिन यह सब कुछ है, इसकी एकमात्र कोड-चीनी है। जो भी आप चाहते हैं उसे किसी गतिशील टाइपिंग के साथ भी शब्दकोश के साथ प्राप्त किया जा सकता है। –
Euphoric
शब्दकोश वस्तुओं के रूप में उठाए जाने वाले कार्यक्रमों के बारे में क्या सेट किया गया है? – sbenderli
संभावित डुप्लिकेट [गतिशील रूप से गतिशील वस्तु में सदस्यों को जोड़ना] (http: // stackoverflow।कॉम/प्रश्न/2079870/गतिशील रूप से जोड़ने-सदस्यों-टू-ए-डायनामिक-ऑब्जेक्ट) – nawfal