दिलचस्प पोस्ट
क्या आप पूरे व्यवस्थापक के उपयोग के लिए डीजेन्गो ऐप को एक वर्बोस नाम दे सकते हैं? एचटीएमएल / पीएचपी के साथ एक्सएसएस कैसे रोकें? स्विंग में देरी कैसे बनाएं ट्विटर बूटस्ट्रैप का उपयोग करके आप कंटेटेड सामग्री कैसे प्राप्त कर सकते हैं? मार्कर इंटरफ़ेस का उद्देश्य क्या है? Jquery लोड () केवल फ़ायरफ़ॉक्स में काम कर रहा है? एंड्रॉइड में ऑफ़लाइन भाषण मान्यता (जेलीबीन) क्या एंड्रॉइड के लिए कोई मुफ्त ओसीआर पुस्तकालय है? मशीन का आईपी पता प्राप्त करें एक ग्रिडव्यू (एंड्रॉइड) में एक हेडर जोड़ें आईओएस आवेदन में बटन की तरह बूटस्ट्रैप 3 का उपयोग करके चिपचिपा बाएं साइडबार मेनू कैसे बना सकता है? कैसे एक मूल तत्व मँडरा जब माता पिता तत्व शैली करने के लिए? उस तालिका के लिए एक अलग पूर्णांक के साथ डीजेंगो की प्राथमिक कुंजी को कैसे बदल सकता है एक्लिप्स खोज से फ़ोल्डरों को बाहर निकालें

एक्सपांडो ओब्जेक्ट में अज्ञात (डिजाइन समय पर) गुण जोड़ना

बस सी # 4 की खोज। इस सब गतिशील सामान के आसपास मेरे सिर को पाने की कोशिश। क्षमा करें यदि यह प्रश्न मूर्खतापूर्ण है, तो इस डोमेन में कोई अनुभव नहीं है।

अगर मेरे पास एक्सपांडो ओब्जेक्ट है और रनटाइम पर सार्वजनिक गुण (इसे प्राप्त और सेट के साथ) जोड़ना चाहते हैं तो मैं इसे कैसे करूँगा?

उदाहरण के लिए, मेरे पास एक दस्तावेज टेम्पलेट और एक दस्तावेज है, जिसमें दस्तावेज की ओर इंगित करते हुए संपत्ति है टेम्पलेट। इस दस्तावेज में टेम्पलेट को कुछ टैग शीर्षकों (उदाहरण के लिए, विद्यार्थियों के बीच विकसित की जाने वाली क्षमताओं) मिलती है, जिसे दस्तावेज़ बनाते समय संबोधित किया जाना चाहिए (जैसे एकाग्रता, स्मृति आदि)। तो जैसे ही टेम्पलेट को दस्तावेज़ में सेट किया जाता है, मैं एक वर्ग बनाना चाहता हूं, जिसमें टेम्प्लेट में टैग शीर्षकों के नाम के साथ गुण हैं, और फिर कुछ UI तत्व जैसे कि प्रॉपर्टीग्रिड का उपयोग करते हुए, मुझे उपयोगकर्ता हो सकता है टैग शीर्षक के साथ टैग मानों को भरें।

पढ़ने के लिए धन्यवाद!

वेब के समाधान से एकत्रित समाधान "एक्सपांडो ओब्जेक्ट में अज्ञात (डिजाइन समय पर) गुण जोड़ना"

मुझे आश्चर्य है कि सदस्यों को "मक्खी पर" क्लास में जोड़ना संभव कैसे हो सकता है और इस नमूने के साथ आया:

using System; using System.Collections.Generic; using System.Dynamic; class Program { static void Main() { dynamic expando = new ExpandoObject(); var p = expando as IDictionary<String, object>; p["A"] = "New val 1"; p["B"] = "New val 2"; Console.WriteLine(expando.A); Console.WriteLine(expando.B); } } 

इस कोड स्निपेट का मुद्दा यह है कि सदस्यों ए और बी को स्ट्रिंग लीटरल्स (हार्ड कोडित / स्ट्रैटेड) के रूप में परिभाषित किया गया है और एक्सपांडो ओब्जेक्ट के आईडीवरी इंटरफ़ेस के माध्यम से जोड़ा गया है। हम कंसों के अस्तित्व और मूल्यों (और अवधारणा को साबित करने के लिए) का परीक्षण करते हैं और सीधे उन्हें कंसोल के लिए आउटपुट करते हैं।

ExpandoObject को प्रतिनिधि संपत्तियों को जोड़ना संभव है, जो तब कार्यवाही की तरह कार्य करता है (लगभग) जैसे,

 dynamic obj = new ExpandoObject(); obj.GetDocumentTemplate = () => { ... }; ... obj.GetDocumentTemplate(); // invokes delegate 

हां, ExpandoObject बहुत "गुण बैग" में गतिशील रूप से गुण जोड़ने के लिए डिज़ाइन किया गया है इस तरह की संपत्ति देने की धारणा एक गेटर और सेटर अभी समर्थित नहीं है। हो सकता है कि यह स्पष्ट हो कि आप इसके बारे में थोड़ा सोचते हैं: यदि आप पहले से ही जानते हैं कि प्राप्तकर्ता और सेटर को क्या करना चाहिए तो यह अब एक गतिशील संपत्ति नहीं होगी। निकटतम आपको मिल सकता है INOTifyPropertyChanged ईवेंट को लागू कर रहा है ताकि आप परिवर्तनों का पता लगा सकें। कुछ नमूना कोड:

 using System; using System.Dynamic; using System.ComponentModel; class Program { static void Main(string[] args) { dynamic obj = new ExpandoObject(); obj.test = 42; // Add a property Console.WriteLine(obj.test); var inpc = (INotifyPropertyChanged)obj; inpc.PropertyChanged += inpc_PropertyChanged; obj.test = "foo"; Console.ReadLine(); } static void inpc_PropertyChanged(object sender, PropertyChangedEventArgs e) { Console.WriteLine("'{0}' property changed", e.PropertyName); } } 

उत्तर अब तक मूलभूत बातें बहुत अच्छी तरह से कवर करते हैं, लेकिन मुझे लगा कि इस एमएसडीएन पत्रिका लेख को साझा करने के लिए भी मूल्य था:

http://msdn.microsoft.com/en-us/magazine/ff796227.aspx

इसमें गतिशील XML इनपुट का प्रयोग करने के कुछ उदाहरण शामिल हैं जो गतिशील रूप से व्युत्पन्न ऑब्जेक्ट्स का उपयोग और उपयोग करते हैं।

मैंने इस दिलचस्प तथ्य की खोज की है: एक्सएएमएल बाइंडिंग एक्सपांडऑनबाइज के लिए भी बाध्यकारी गुणों का उपयोग करने की कोशिश कर रही है

मुझे यह जानने के लिए अभी भी अधिक रचनात्मकता की आवश्यकता है कि यह क्या अच्छा है। UI पर डायनामिक ऑब्जेक्ट सृजन? अच्छा लगता है: DI कुछ बाहर की कोशिश करेंगे