दिलचस्प पोस्ट
एएसपी.नेट एमवीसी 3 एक्शन फिल्टर में निर्भरताएं इंजेक्शन इस दृष्टिकोण में क्या गलत है? क्रॉस डोमेन आइफ्रेम समस्या समारोह से प्रारंभिक प्रस्थान? पायथन में वर्तमान सीपीयू और रैम उपयोग कैसे प्राप्त करें? कैसे PHP में वीडियो अवधि, आयाम और आकार प्राप्त करें? जावा कचरा कलेक्टर – यह कब एकत्र करता है? एक सिस्टम कॉल बनाना जो स्टड आउट आउटपुट को स्ट्रिंग के रूप में देता है Android में TextView के नीचे एक रेखांकित करने के लिए प्लॉट 4 घटता एक ही साजिश में 3 y- अक्षों के साथ सूचियों के शब्दकोश से / के लिए दिशानिर्देशों की सूची WCF डिफ़ॉल्ट JSON सीरियलाइज़ेशन को बदलें WindowsC ++ / CLI में एप्लिकेशन निष्पादन योग्य नाम कैसे प्राप्त करें? स्लविट में println डॉक्यूमेंट आइटम करते समय एस्केप शब्दकोश कुंजी दोहरे उद्धरण टेक्सटेरिया में वर्णों की गणना करें 32-बिट ऑफ़िस मौजूद है जब 64-बिट एमएस एक्सेस ओडीबीसी ड्राइवरों का हाथ स्थापित करें

विशेषताएँ सी # में गतिशील रूप से जोड़ा जा सकता है?

क्या रनटाइम पर विशेषताओं को जोड़ना संभव है या रनटाइम पर एक विशेषता के मान को बदलना है?

Solutions Collecting From Web of "विशेषताएँ सी # में गतिशील रूप से जोड़ा जा सकता है?"

विशेषताएं स्थिर मेटाडेटा हैं असेंबलियों, मॉड्यूल, प्रकार, सदस्यों, मापदंडों, और रिटर्न वैल्यू C # में प्रथम-श्रेणी की ऑब्जेक्ट नहीं हैं (जैसे, System.Type । टाईप क्लास केवल एक प्रकार का प्रतिबिंबित प्रतिनिधित्व है)। आप किसी प्रकार के एक विशेषताओं का एक उदाहरण प्राप्त कर सकते हैं और गुण बदल सकते हैं यदि वे लिखने योग्य हों, लेकिन यह विशेषता को प्रभावित नहीं करेगा क्योंकि यह प्रकार पर लागू होता है।

यह वाकई इस बात पर निर्भर करता है कि आप क्या पूरा करने की कोशिश कर रहे हैं।

System.ComponentModel.TypeDescriptor सामान प्रकार, गुण और वस्तु उदाहरणों के लिए विशेषताओं को जोड़ने के लिए उपयोग किया जा सकता है, और इसमें उन गुणों को पुनः प्राप्त करने के लिए इसका उपयोग करने की सीमा है यदि आप उस कोड को लिख रहे हैं जो उन विशेषताओं को खपता है, और आप उन सीमाओं के भीतर रह सकते हैं, तो मैं निश्चित रूप से इसका सुझाव दूंगा

जहां तक ​​मुझे पता है, संपत्ति ग्रिड नियंत्रण और दृश्य स्टूडियो डिजाइन की सतह बीसीएल में ही चीजें हैं जो टाइपडिसिप्टर सामान का उपभोग करते हैं वास्तव में, वे इस तरह से आधे चीजों के बारे में क्या करते हैं जिन्हें उन्हें वास्तव में करने की ज़रूरत है

खैर, बस अलग होने के लिए, मुझे एक लेख मिला जो प्रतिबिंब का उपयोग करने के लिए संदर्भ। ऐसा करने के लिए हटाएं

यहां लिंक है: http://www.codeproject.com/KB/cs/dotnetattributes.aspx , आप लेख के निचले भाग में कुछ टिप्पणियों पर गौर करना भी चाहते हैं, क्योंकि संभावित तरीकों पर चर्चा की जाती है।

आप नहीं कर सकते एक वैकल्पिक क्रम रनटाइम पर व्युत्पन्न वर्ग उत्पन्न करने और विशेषता को जोड़ने के लिए हो सकता है, हालांकि यह संभवतः एक ओवरकिल का छोटा हिस्सा है।

नहीं यह नहीं।

गुण मेटा-डेटा हैं और संकलित विधानसभा में बाइनरी-फ़ॉर्म में संग्रहीत हैं (यही कारण है कि आप केवल उन में साधारण प्रकार क्यों उपयोग कर सकते हैं)।

मुझे ऐसा विश्वास नहीं है। यहां तक ​​कि अगर मैं ग़लत हूँ, तो सबसे अच्छा आप के लिए आशा कर सकते हैं उन्हें एक संपूर्ण प्रकार को जोड़ने, एक प्रकार का एक उदाहरण कभी नहीं।

यदि आपको गतिशील रूप से जोड़ा जाने के लिए कुछ की आवश्यकता है, तो c # विशेषताएँ मार्ग नहीं हैं एक्सएमएल में डेटा को संचय में देखें मैंने हाल ही में एक प्रोजेक्ट की शुरुआत की जो मैंने शुरू की है / विशेषताओं, लेकिन अंततः क्रमिकरण w / xml में स्थानांतरित कर दिया।

आप की आवश्यकता क्यों है? विशेषताएँ प्रतिबिंब के लिए अतिरिक्त जानकारी प्रदान करते हैं, लेकिन अगर आप बाह्य रूप से जानते हैं कि आप किस संपत्ति की जरूरत चाहते हैं, तो आपको उनकी आवश्यकता नहीं है।

आप डेटाबेस या संसाधन फ़ाइल में अपेक्षाकृत आसानी से मेटा डेटा को बाह्य रूप से स्टोर कर सकते हैं।

सफलता के बिना मैंने सिस्टम.कंपनेन्टमोडेल.TypeDescriptor के साथ बहुत कठिन प्रयास किया। इसका अर्थ यह नहीं है कि यह काम नहीं कर सकता है लेकिन मैं इसके लिए कोड देखना चाहता हूं।

काउंटर भाग में, मैं कुछ विशेषता मानों को बदलना चाहता था। मैंने 2 कार्य किया जो उस उद्देश्य के लिए ठीक काम करते हैं।

  // ************************************************************************ public static void SetObjectPropertyDescription(this Type typeOfObject, string propertyName, string description) { PropertyDescriptor pd = TypeDescriptor.GetProperties(typeOfObject)[propertyName]; var att = pd.Attributes[typeof(DescriptionAttribute)] as DescriptionAttribute; if (att != null) { var fieldDescription = att.GetType().GetField("description", BindingFlags.NonPublic | BindingFlags.Instance); if (fieldDescription != null) { fieldDescription.SetValue(att, description); } } } // ************************************************************************ public static void SetPropertyAttributReadOnly(this Type typeOfObject, string propertyName, bool isReadOnly) { PropertyDescriptor pd = TypeDescriptor.GetProperties(typeOfObject)[propertyName]; var att = pd.Attributes[typeof(ReadOnlyAttribute)] as ReadOnlyAttribute; if (att != null) { var fieldDescription = att.GetType().GetField("isReadOnly", BindingFlags.NonPublic | BindingFlags.Instance); if (fieldDescription != null) { fieldDescription.SetValue(att, isReadOnly); } } } 

जावा में मैं इसके आसपास एक मानचित्र का उपयोग करके और कुंजी-वैल्यू कोडिंग पर अपने स्वयं के लागूकरण को लागू करने के लिए काम करता था।

http://developer.apple.com/documentation/Cocoa/Conceptual/KeyValueCoding/KeyValueCoding.html