वहाँ एक अच्छा Best Way Of Saving Lists in App.Config
में अपने app.config फ़ाइलों में सूचियों संग्रहीत करने के बारे लेख (या कोई कस्टम वस्तु) अनिवार्य रूप से, आप एक वस्तु है कि डेटा का प्रतिनिधित्व करता पैदा करते हैं।
public class MyConfig
{
public string[] myList;
public string someOtherValueIfYouWant;
}
और इसके लिए एक config हैंडलर लिखना ...
public class ConfigSectionHandler : IConfigurationSectionHandler
{
public const string SECTION_NAME = "MyConfig";
public object Create(object parent, object configContext, XmlNode section)
{
string szConfig = section.SelectSingleNode("//MyConfig").OuterXml;
MyConfig retConf = null;
if (szConfig != string.Empty || szConfig != null)
{
XmlSerializer xsw = new XmlSerializer(typeof(MyConfig));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szConfig));
ms.Position = 0;
retConf = (MyConfig)xsw.DeSerialize(ms);
}
return retConf;
}
}
और यह आप अपने app.config फ़ाइल में निम्न XML डाल करने के लिए अनुमति देता है ...
टेल अनुप्रयोग।अपने शांत config अनुभाग
<configSections>
<section name="MyConfig" type="ConfigSectionHandler,someAssembly" />
</configSection>
और फिर जोड़ने के अपने config अनुभाग के बारे में config ...
<MyConfig>
<myList>First one</myList>
<myList>Second one</myList>
<myList>Keep going</myList>
<myList>And so on</myList>
<someOtherValueIfYouWant>some non array config</someOtherValueIfYouWant>
</MyConfig>
अल्पविराम से अलग सूची प्रदर्शन कैसे प्रभावित करेगा? मैंने कॉन्फ़िगरेशन फ़ाइलों में कॉमा-डिलीमिटेड स्ट्रिंग का उपयोग पहले किया है और किसी भी प्रदर्शन समस्या को नहीं देखा है। – Tim
@Tim - मैं मानता हूं कि प्रदर्शन शायद इसके लिए ड्राइवर नहीं है, लेकिन 161 आइटमों के लिए, एक अल्पविराम से अलग सूची आपकी app.config फ़ाइल में सबसे सुंदर समाधान नहीं है। यह देखते हुए कि app.config एक्सएमएल है और वैसे भी डी-सीरियलाइज किया जाएगा, यह आपके डेटा को एक्सएमएल में स्टोर करने के लिए बहुत अच्छा है। – Fenton