पढ़ने के लिए जेनेरिक विधि एक कॉन्फ़िगरेशन फ़ाइल से अनुभाग पढ़ने के लिए सामान्य तरीका लागू करने का प्रयास कर रहा हूं। कॉन्फ़िगरेशन फ़ाइल में नीचे 'मानक' अनुभाग या 'कस्टम' अनुभाग हो सकते हैं।कॉन्फ़िगरेशन अनुभाग
<configuration>
<configSections>
<section name="NoteSettings" type="System.Configuration.NameValueSectionHandler"/>
</configSections>
<appSettings>
<add key="AutoStart" value="true"/>
<add key="Font" value="Verdana"/>
</appSettings>
<NoteSettings>
<add key="Height" value="100"/>
<add key="Width" value="200"/>
</NoteSettings>
विधि है कि मैंने कोशिश की इस प्रकार है:
private string ReadAllSections()
{
StringBuilder configSettings = new StringBuilder();
Configuration configFile = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
foreach (ConfigurationSection section in configFile.Sections)
{
configSettings.Append(section.SectionInformation.Name);
configSettings.Append(Environment.NewLine);
if (section.GetType() == typeof(DefaultSection))
{
NameValueCollection sectionSettings = ConfigurationManager.GetSection(section.SectionInformation.Name) as NameValueCollection;
if (sectionSettings != null)
{
foreach (string key in sectionSettings)
{
configSettings.Append(key);
configSettings.Append(" : ");
configSettings.Append(sectionSettings[key]);
configSettings.Append(Environment.NewLine);
}
}
}
configSettings.Append(Environment.NewLine);
}
return configSettings.ToString();
}
यह मानते हुए कि सभी कस्टम वर्गों केवल मुख्य मान होगा
- इस प्रकार का कार्यान्वयन है मुमकिन? और यदि हां, तो क्या इस से एक 'क्लीनर' और अधिक सुरुचिपूर्ण समाधान है?
- उपर्युक्त विधि 'अदृश्य' अनुभाग भी पढ़ती है जैसे mscorlib, system.diagnostics। क्या यह टालने योग्य है?
- System.Data.Dataset एक डेटासेट देता है जिसे NameValueCollection पर नहीं डाला जा सकता है। इसे कैसे संभाला जा सकता है?
सुधार/सुझाव स्वागत है।
धन्यवाद।
यह महान काम किया! – codechurn