2011-11-16 9 views
16

मेरे पास एक enum है जिसे मैं web.config से रन-टाइम पर प्राप्त करना चाहता हूं। मैंने बिल्ड प्रदाताओं के बारे में पढ़ना शुरू किया, लेकिन यह कक्षाओं के लिए काम करता प्रतीत होता है। क्या कोई मुझे एक उदाहरण के लिए इंगित कर सकता है, या कम से कम मुझे सही दिशा में इंगित कर सकता है।रन समय पर web.config से enum मान प्राप्त करें

अभी मेरे पास web.config में मानों की अल्पविराम से अलग सूची है, और यह टाइप-सुरक्षित नहीं है और त्रुटियों से ग्रस्त है।

यदि इस प्रकार के "गतिशील-enum" पाने के लिए कोई और तरीका है, तो मैं अन्य विचारों के लिए खुला हूं।

धन्यवाद!

+0

जांच इन http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/5a700783-0425-43a4-bdc3-0f85a029d3f9 http://stackoverflow.com/questions/478403/can -आई-ऐड-एंड-हटा-तत्व-का-गणना-पर-रनटाइम-इन-जावा –

+0

@ निरंजन कृला - तो क्या कोई विकल्प है? मैं सिर्फ संकलन-समय में अज्ञात प्रकार के लिए प्रकार की सुरक्षा चाहता हूं। क्या यह भी संभव है? –

+0

क्या आपके पास अपने कोड में दृढ़ता से टाइप की गई enum घोषित है? या आप गतिशील सब कुछ करना चाहते हैं? –

उत्तर

25

आप ConfigurationManager का उपयोग करें और enum करने के लिए मूल्य में बदल सकते हैं:

<configuration> 
    <appSettings> 
    <add key="YourEnum" value="BlueSky" /> 
    </appSettings> 
</configuration> 

string configValue = ConfigurationManager.AppSettings["YourEnum"]; 
YourEnumType value = (YourEnumType)Enum.Parse(typeof(YourEnumType), configValue); 
0

अगर मैं थे आप तो मैं अपने ही Enum वर्ग डिजाइन करेंगे। इस तरह आप या तो इसे XML में क्रमबद्ध करने या रनटाइम पर इसे बनाने में सक्षम होंगे। यह भी सुनिश्चित करेगा कि आपके पास अभी भी सुरक्षा है।

आम तौर पर डेटा कक्षा के भीतर एक शब्दकोश प्रकार या कुंजी/मूल्य जोड़ी सूची में संग्रहीत किया जाएगा। फिर आप कॉन्फ़िगरेशन फ़ाइल में मानों की एक सूची संग्रहीत कर सकते हैं (सूची डेटा को पढ़ने के तरीके पर एक नज़र डालें)

कुछ विचार प्राप्त करने के लिए here देखें।

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