2011-02-05 23 views
5

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

+0

किस सम्मान में गुण? – gunwin

+0

क्या आप कुछ ऐसा उदाहरण दे सकते हैं जिसे आपने विशेषताओं के साथ कार्यान्वित किया है लेकिन रनटाइम पर बदलना चाहते हैं? –

+0

@justin - मैं एक प्रकार के एक्सएमएल आउटपुट द्वारा वस्तुओं का प्रतिनिधित्व करना चाहता हूं, इसलिए मैं होल्ड मानों के लिए कुछ कस्टम विशेषताओं को लिखना चाहता हूं लेकिन उपयोगकर्ता अपने ऑब्जेक्ट प्रस्तुतियों को बदलने में सक्षम होना चाहिए। – Freshblood

उत्तर

3

असल में कुछ मामलों में आप रनटाइम पर tweak विशेषताएँ कर सकते हैं - उदाहरण के लिए TypeDescriptor - लेकिन यह केवल घटक मॉडेल उपयोग को प्रभावित करता है, प्रतिबिंब उपयोग नहीं। I18n उद्देश्यों के लिए resx लुकअप जैसी चीज़ों को करने के लिए आप विशेषता को भी लिख सकते हैं।

लेकिन अन्य विकल्प:

  • शायद एक स्थिर संपत्ति, शायद एक नामकरण परंपरा निम्नलिखित
  • एक अलग वस्तु मॉडल है कि प्रकार के बारे में बात करती है - एक मेटा मॉडल है, तो
  • एक विन्यास बात करने के लिए फ़ाइल या इसी तरह के

कोई भी काम करेगा; जो सबसे अच्छा है, उस पर निर्भर करता है कि आपके मन में क्या है।

0

प्लग-इन आर्किटेक्चर में विशेषता का एक अच्छा प्रतिस्थापन स्मार्ट नामकरण सम्मेलनों का उपयोग कर सकता है।

0

शायद मुझे कुछ याद आ रही है, लेकिन क्या आप अपने कस्टम विशेषताओं में सार्वजनिक सेटटर के साथ गुण जोड़ नहीं सकते? मैंने बस एक कार्यान्वयन पर यह कोशिश की जहां मैं विशेषताओं का उपयोग करता हूं, और मैं बिना किसी समस्या के रनटाइम पर इस संपत्ति को बदलने में सक्षम हूं।

आप कौन से मूल्य बदलना चाहते हैं?

+0

लेकिन आपने विशेषता के उदाहरण के गुण मूल्य को बदल दिया है। – Freshblood

+0

मैं देखता हूं, इसलिए आपको अपने गुणों में संशोधित सदस्यों के लिए ** persistancy ** की आवश्यकता है। मुझे कोई पुस्तकालय नहीं है जो पहले ही इसे लागू कर रहा है, लेकिन ऐसा लगता है। आपकी कस्टम विशेषता शायद इसके आंतरिक मानों को लगातार स्टोर करने के लिए किसी भी फॉर्म (आईएनआई/संसाधन फ़ाइल/क्रमबद्धता/...) का उपयोग कर सकती है। मुझे लगता है कि सरल एक्सएमएल सीरियलाइजेशन आपको समाधान प्रदान नहीं करता है, क्योंकि आप रनटाइम पर सेटिंग्स को बदलना चाहते हैं? –

+0

हां, मैं रनटाइम पर मूल्यों को बदलने में सक्षम होना चाहता था। मुझे लगता है कि मुझे मूल्यों को दृढ़ता से बचाना है, इसलिए मेरे दिमाग में केवल प्रश्न ही दिखते हैं कि उन्हें कैसे बचाया जाए? मुझे लगता है कि मैं इसके लिए टाइप का ग्रिड वैल्यू चुनूंगा। – Freshblood

संबंधित मुद्दे