2011-01-12 14 views
51

मैं 2 ऐप के लिए सेटिंग्स को स्टोर करने के लिए अपनी ऐप कॉन्फ़िगरेशन का उपयोग करना चाहता हूं, और मैं चाहूंगा कि किसी सेक्शन के लिए डेटा को अलग करने के लिए एक सेक्शन का उपयोग करना संभव था, फिर उन्हें अलग-अलग कुंजी नाम दें।सी # 4.0 app.config में अनुभागों का उपयोग कैसे करते हैं?

मैं ऑनलाइन जाँच की है, लेकिन मैं थोड़ा अभिभूत मिलता है, जब लोग अनुभागों का उपयोग या पुरानी आसान तरीके से उन्हें इस्तेमाल करने लगता है लग रहे हैं। क्या कोई मुझे उन पर एक शुरुआती गाइड पास कर सकता है?

नीचे क्या मेरी app.config कैसा दिखेगा इसका एक उदाहरण है:

<configSections> 
    <section name="FBI" type="" /> 
    <section name="FSCS" type="" /> 
    </configSections> 

    <FSCS> 
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
    </FSCS> 
    <FBI> 
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
    </FBI> 

अद्यतन:

उन्नत समाधान anwer पर आधारित है। अगर कोई जानना चाहता था।

App.config:

<configuration> 
    <configSections> 
     <sectionGroup name="FileCheckerConfigGroup"> 
      <section name="FBI" type="System.Configuration.NameValueSectionHandler" /> 
      <section name="FSCS" type="System.Configuration.NameValueSectionHandler" /> 
     </sectionGroup> 
    </configSections> 
    <FileCheckerConfigGroup> 
     <FSCS> 
      <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
     </FSCS> 
     <FBI> 
      <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
     </FBI> 
    </FileCheckerConfigGroup> 
</configuration> 

कोड:

// Get the application configuration file. 
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

// Get the collection of the section groups. 
ConfigurationSectionGroupCollection sectionGroups = config.SectionGroups; 

foreach (ConfigurationSectionGroup sectionGroup in sectionGroups) 
{ 
    if (sectionGroup.Name == "FileCheckerConfigGroup") 
    { 
     foreach (ConfigurationSection configurationSection in sectionGroup.Sections) 
     { 
      var section = ConfigurationManager.GetSection(configurationSection.SectionInformation.SectionName) as NameValueCollection; 
      inputDirectory = section["inputDirectory"]; //"C:\\testfiles"; 
     } 
    } 
} 
+0

आप जो कंपनी के डेटा का उपयोग कैसे पता चलेगा? एफबीआई में उपयोगकर्ता होने पर आप कैसे जानते हैं? इनपुट निर्देशिका सेट करने के बाद – DOK

+0

, उस कंपनी के लिए चीजों को करने का एक तरीका होगा। – Andy

उत्तर

73
<configSections> 
    <section name="FBI" type="System.Configuration.NameValueSectionHandler" /> 
    <section name="FSCS" type="System.Configuration.NameValueSectionHandler" /> 
</configSections> 

<FSCS> 
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
</FSCS> 
<FBI> 
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
</FBI> 

और फिर:

var section = ConfigurationManager.GetSection("FSCS") as NameValueCollection; 
var value = section["processingDirectory"]; 
+1

यह बहुत अच्छा है। क्या आपको कोड से ऐप कॉन्फ़िगरेशन से सभी भिन्न अनुभागों को पुनर्प्राप्त करने का तरीका पता होगा? – Andy

+10

नोट: यदि आप सेक्शन ग्रुप का उपयोग कर रहे हैं, तो समूह को पथ के रूप में प्राप्त करें अनुभाग यानी ConfigurationManager.GetSection ("GroupName/FSCS") को NameValueCollection के रूप में जोड़ा जाता है; – Andy

+0

2.0 से अधिक नेट संस्करण में आपको 'टाइप = "सिस्टम का उपयोग करना होगा। कॉन्फ़िगरेशन। ऐपसेटिंगसेक्शन" ' –

9

App.config

<configSections> 
    <sectionGroup name="FileCheckers"> 
    <section name="FBI" type="System.Configuration.NameValueSectionHandler" /> 
    <section name="FSCS" type="System.Configuration.NameValueSectionHandler" /> 
    </sectionGroup> 
</configSections> 

<FileCheckers> 
    <FSCS> 
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
    </FSCS> 
    <FBI> 
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/> 
    </FBI> 
</FileCheckers> 

उदाहरण प्रयोग

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
ConfigurationSectionGroup fileCheckersGroup = config.SectionGroups["FileCheckers"]; 
foreach (ConfigurationSection section in fileCheckersGroup.Sections) 
{ 
    NameValueCollection sectionSettings = ConfigurationManager.GetSection(section.SectionInformation.SectionName) as NameValueCollection; 
    var value = sectionSettings["processingDirectory"] 
} 
+1

कृपया कोड के अतिरिक्त कुछ स्पष्टीकरण प्रदान करें। केवल "var" परिभाषाओं का उपयोग न करने के लिए –

+0

+1। यह समझने में मदद करता है कि यह कैसे काम करता है या आप किस प्रकार के प्रकार का उपयोग कर रहे हैं। – EAmez

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