2013-04-07 8 views
8

मैं app.config मान पढ़ना चाहता हूं, इसे एक संदेश बॉक्स में दिखाएं, बाहरी टेक्स्ट एडिटर का उपयोग करके मूल्य बदलें, और अंत में अद्यतन मूल्य दिखाएं।मैं app.config को पुनः लोड/रीफ्रेश कैसे करूं?

मैं निम्नलिखित कोड का उपयोग कर की कोशिश की:

private void button2_Click(object sender, EventArgs e) 
{ 
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
    ConfigurationManager.RefreshSection("appSettings"); 
    ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name); 
    MessageBox.Show(ConfigurationManager.AppSettings["TheValue"]); 
} 

लेकिन यह काम नहीं करता। यह पुराना मान दिखाता है (बाहरी पाठ संपादक में बदलने से पहले)। कोई सुझाव?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<appSettings> 
    <add key="TheValue" value="abc"/> 
</appSettings> 
</configuration> 

उत्तर

2

आप नीचे दिए गए कोड का उपयोग कर की कोशिश कर सकते हैं:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
KeyValueConfigurationCollection settings = config.AppSettings.Settings;    
// update SaveBeforeExit 
settings["TheValue"].Value = "WXYZ"; 
config.Save(ConfigurationSaveMode.Modified); 

MessageBox.Show(ConfigurationManager.AppSettings["TheValue"]); 
+1

इस प्रश्न का उत्तर जब तक यह बताता है कि कोड करता है और यही कारण है कि यह उसकी समस्या का हल नहीं है। –

9

यह आप इस

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
config.AppSettings.Settings["KeyName"].Value = "NewValue"; 
config.AppSettings.SectionInformation.ForceSave = true; 
config.Save(ConfigurationSaveMode.Modified); 

तरह विन्यास को बचाने के लिए

कोशिश में मदद करें और फिर इस

है जैसे कि यह लाने सकता है
ConfigurationManager.RefreshSection("appSettings"); 
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
+0

आपका कोड मेरे लिए काम किया। धन्यवाद! – jned29

+0

यहां मुख्य कथन 'config.AppSettings.SectionInformation.ForceSave = true' है। – Tarik

2

यह डिस्क से app.config फ़ाइल को फिर से लोड करना चाहिए:

var appSettings = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Reflection.Assembly.GetEntryAssembly().Location).AppSettings; 
MessageBox.Show(appSettings.Settings["TheValue"].Value); 
संबंधित मुद्दे