आपको डिस्क से सीधे नवीनतम मान पढ़ने के लिए ConfigurationManager.RefreshSection विधि पर कॉल करने की आवश्यकता है।
static void Main(string[] args)
{
while (true)
{
// There is no need to restart you application to get latest values.
// Calling this method forces the reading of the setting directly from the config.
ConfigurationManager.RefreshSection("appSettings");
Console.WriteLine(ConfigurationManager.AppSettings["myKey"]);
// Or if you're using the Settings class.
Properties.Settings.Default.Reload();
Console.WriteLine(Properties.Settings.Default.MyTestSetting);
// Sleep to have time to change the setting and verify.
Thread.Sleep(10000);
}
}
मेरे app.config युक्त:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ConsoleApplication2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="myKey" value="Original Value"/>
</appSettings>
<userSettings>
<ConsoleApplication2.Properties.Settings>
<setting name="MyTestSetting" serializeAs="String">
<value>Original Value</value>
</setting>
</ConsoleApplication2.Properties.Settings>
</userSettings>
</configuration>
के बाद आप आवेदन शुरू, निर्माण फ़ोल्डर के भीतर app.config खोलें, और यहाँ का परीक्षण करने और अपने प्रश्न का उत्तर प्रदान करने के लिए एक आसान तरीका है "myKey" एपसेटिंग के मूल्य को बदलें। आपको कंसोल पर मुद्रित नया मान दिखाई देगा।
प्रश्न का उत्तर देने के लिए, हाँ, वे पहली बार कैश किए जाते हैं, जिन्हें वे सोचते हैं, और सीधे डिस्क से पढ़ने को मजबूर करने के लिए, आपको अनुभाग को रीफ्रेश करने की आवश्यकता होती है।
और यदि मुझे इस तरह की सेटिंग मिलती है: Properties.Settings.Default.MyValue? – 26071986
Properties.Settings.Default.Reload() का उपयोग कर; – mservidio
@ 26071 9 86 - मैंने सेटिंग क्लास का उपयोग करते समय कोड को प्रतिबिंबित करने के लिए अपना उत्तर अपडेट किया है। – mservidio