2012-06-12 17 views
6

से गतिशील संपत्ति प्राप्त करें मेरे पास मेरे AppConfig में संग्रहीत कुछ गुण हैं और अब मैं उन्हें गतिशील रूप से एक्सेस करना चाहता हूं (उदा। लूप या फ़ंक्शन में)।सेटिंग्स

MySettings.NAME_OF_THAT_THING का उपयोग कर मानों तक पहुंचने में कोई समस्या नहीं है, लेकिन यदि नाम परिवर्तनीय है तो क्या होगा?

मैंने कोशिश की:

String propertyValue = MySettings.GetType().GetProperty("NAME_OF_THAT_THING").ToString(); 

लेकिन केवल एक चीज मैं वापस मिल संपत्ति का नाम है। मैं यह कैसे कर सकता हूँ?

+0

जाने का तरीका है MySettings का प्रकार क्या है? क्या यह iDictionary या कुछ लागू नहीं करता है? मुझे उम्मीद है कि आप 'MySettings ("NAME_OF_THING") ' – Chris

+0

एप्लिकेशन.प्रॉपर्टीज। सेटिंग्स – user1450661

उत्तर

5
String propertyValue = MySettings.GetType() 
.GetProperty("NAME_OF_THAT_THING") 
.GetValue(MySettings, null); //replace MySettings with null in GetValue(...) if MySettings is a static class 
+0

याय, इसे हल किया है! आपका बहुत बहुत धन्यवाद। =) – user1450661

0

क्या आपने ConfigurationManager.AppSettings property का उपयोग करने का प्रयास किया है? आप नीचे दिए गए कोड के माध्यम से अपनी सेटिंग प्राप्त करने के लिए सक्षम होना चाहिए:

String propertyValue = ConfigurationManager.AppSettings["NAME_OF_THAT_THING"]; 

ConfigurationManager.AppSettings के लिए MSDN लेख भी AppSettings में नहीं बल्कि नाम से सूचकांक द्वारा प्रविष्टियों के सभी के माध्यम से पाशन, के लिए एक उदाहरण भी शामिल है।

+0

ओपी का संदर्भ देने वाली सेटिंग्स कॉन्फ़िगरेशन फ़ाइल के एपसेटिंग तत्व में संग्रहीत नहीं हैं, वे एप्लिकेशन सेटिंग्स तत्व के तहत एक और जटिल संरचना का उपयोग करके संग्रहीत हैं। –

8

तुम सब करने की ज़रूरत है:

String propertyValue = Settings.Default["NAME_OF_THAT_THING"].ToString(); 

जबकि प्रतिबिंब का उपयोग कर काम जाहिर है, यह overkill है। मूल पोस्टर सवाल का

+0

मेरे पास "MySettings.Default" नहीं है: (इस संदर्भ में कोई विधि डिफ़ॉल्ट नहीं है) – user1450661

+0

दिलचस्प। क्या यह WinForm एप्लिकेशन है? हो सकता है कि यह केवल उस संपत्ति को जोड़ता है यदि यह WinForm एप्लिकेशन है ... –

+0

@ user1450661 इसे अभी आज़माएं। मैं सेटिंग्स और MySettings मिश्रित। –

0

जवाब होगा की तरह: MySettings [NAME_OF_THAT_THINGmysettings] करता है पिछले पोस्ट की तरह काम

उन लोगों को अपने विंडोज़ अनुप्रयोग में निर्मित सेटिंग्स का उपयोग करने के लिए जवाब की तलाश में के लिए

तथापि: myAppDefaultNameSpace.Properties .Settings.Default [NAME_OF_THAT_THINGmysettings]

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