दिलचस्प पोस्ट
Mt_rand का क्या नुकसान है? बाश के साथ फ़ंक्शन तर्क के रूप में रिक्त स्थान के साथ स्ट्रिंग पास करना आईओएस (स्विफ्ट) सीनिकैट SCNSceneRenderer unprojectPoint का उपयोग कैसे करें JavaScript में DOM नोड के सभी बच्चे तत्व निकालें क्या कोई वस्तु प्रारंभकर्ता का उपयोग करने का कोई लाभ है? jQuery का ट्रिगर एक्शन जब उपयोगकर्ता स्क्रॉल पृष्ठ के एक निश्चित भाग से पहले होता है AngularJS UI राउटर – राज्य को पुनः लोड किए बिना यूआरएल बदलें Intent.ACTION_VIEW का उपयोग करते हुए आंतरिक मेमोरी में सहेजी गई निजी फाइलें कैसे खोलें? अब टैबैक्टिविटी को नापसंद कर दिया गया है पाइप के साथ "टी" का उपयोग करते समय मैं एक फ़ाइल में stderr कैसे लिख सकता हूँ? मैं कार्य पर सिंक्रोनस जारी रखने से कैसे रोक सकता हूं? एक सरणी में न्यूनतम / अधिकतम तिथियाँ? एक दूरस्थ सर्वर से अमेज़ॅन EC2 पर mysql से कनेक्ट करें एक सबमिट बटन के बिना प्रविष्टि दबाकर फ़ॉर्म सबमिट करना PHP का उपयोग कर किसी फ़ोल्डर से फ़ाइलों की सूची कैसे पढ़ें?

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

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

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

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

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

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

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

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 कुछ बाहर की कोशिश करेंगे