2012-05-02 16 views
21

मैं अपने appSettings में एक प्रविष्टि के रूप में एक आयामी स्ट्रिंग सरणी को स्टोर करना चाहता हूं। मैं , या | के साथ तत्वों को अलग नहीं कर सकता क्योंकि तत्वों में स्वयं उन पात्रों को शामिल किया जा सकता है।स्टोर स्ट्रिंग ऐरे ऐप सेटिंग्स में?

मैं JSON के रूप में सरणी को संग्रहीत करने के बारे में सोच रहा था और JavaScriptSerializer का उपयोग करके इसे deserializing।

क्या ऐसा करने के लिए कोई "सही"/बेहतर तरीका है?

(मेरे JSON विचार थोड़े hacky महसूस करता है)

+1

मैं न्यूटॉन्सॉफ्ट JSON सामान की अनुशंसा करता हूं, यदि आप उस मार्ग पर जाते हैं ... –

उत्तर

20

आप एक System.Collections.Specialized.StringCollection साथ AppSettings इस्तेमाल कर सकते हैं।

var myStringCollection = Properties.Settings.Default.MyCollection; 
foreach (String value in myCollection) 
{ 
    // do something 
} 

प्रत्येक मान एक नई लाइन से अलग होता है।

यहाँ एक स्क्रीनशॉट (जर्मन आईडीई लेकिन यह वैसे भी उपयोगी हो सकता है)

enter image description here

+0

क्या इसका उपयोग पूर्णांक के लिए किया जा सकता है? – akd

+0

@akdurmus: केवल तभी जब आप उन्हें int में परिवर्तित करते हैं: 'int [] ints = new int [strings.Count]; के लिए (int i = 0; i

+0

मुझे एक बेहतर उत्तर मिल रहा है और नीचे पोस्ट किया गया है। धन्यवाद @ टिम – akd

5

आप कस्टम विन्यास अनुभाग/इस उद्देश्य के संग्रह के लिए उपयोग करने पर विचार कर सकते हैं।

<configSections> 
    <section name="configSection" type="YourApp.ConfigSection, YourApp"/> 
</configSections> 

<configSection xmlns="urn:YourApp"> 
    <stringItems> 
    <item value="String Value"/> 
    </stringItems> 
</configSection> 

आप भी इस उत्कृष्ट Visual Studio add-in आप रेखांकन नेट विन्यास धारा डिजाइन करने के लिए अनुमति देता है और स्वचालित रूप से सभी आवश्यक कोड और उनके लिए एक स्कीमा परिभाषा (XSD) उत्पन्न करता है उस पर जाँच कर सकते हैं: यहां एक नमूना है।

9

पूर्णांक के लिए मुझे निम्न तरीके से तेज मिला।

सबसे पहले अपने app.config में अल्पविरामों द्वारा अलग किए गए पूर्णांक मानों के साथ एक ऐप सेटिंग कुंजी बनाएं।

<add key="myStringArray" value="fred,Jim,Alan" /> 

और उसके बाद:

<add key="myIntArray" value="1,2,3,4" /> 

फिर विभाजित है और LINQ

int[] myIntArray = ConfigurationManager.AppSettings["myIntArray"].Split(',').Select(n => Convert.ToInt32(n)).ToArray(); 
4

का उपयोग कर तार के लिए यह आसान है के द्वारा पूर्णांक सरणी में मानों को परिवर्तित, बस अपने web.config फ़ाइल में निम्न जोड़ने आप मान को सरणी में निम्न प्रकार से पुनर्प्राप्त कर सकते हैं:

myArray = ConfigurationManager.AppSettings("myStringArray").Split(",") 
+0

क्या आपका मतलब था '[...] '' "MyStringArray" ', नहीं' (...) ', या क्या मुझे कुछ याद आ रहा है? – WAF

+0

यह 'var myArray = ConfigurationManager.AppSettings ["MyStringArray"] होना चाहिए। विभाजन (', '); ' – dev

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