2014-11-04 46 views
0

我的程序使用了一些環境的數據,這是在「的app.config」文件中引用:如何在程序啓動時動態應用對app.config的更改?

<configuration> 
... 
    <EnvUnderTest path="settings_a.xml" /> 
... 
<configuration> 

這是一個從時間這個數據之間切換到所需要的時間。但是,我不喜歡直接更改「app.config」文件的想法。所以,我認爲如果'path'參數在程序啓動後立即改變,它會好得多。

你能告訴我,它是如何做到的?

我試過下面的代碼:

string te = ConfigurationManager.AppSettings["EnvUnderTest "]; 
Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

TE變量的值是,所以我不知道我怎麼會在運行時訪問該參數值。

+0

如果您需要更改這些值,並且您知道所需的值,那麼首先將它保存在'app.config'中有什麼意義? – 2014-11-04 14:23:49

+0

其實你是對的。 但問題是設置被加載到'cfg'變量中。而ConfigurationManager :: OpenExeConfiguration()不指定加載哪個文件。 如果我知道如何從其他文件加載首選項,我寧願這樣做。 – Eugene 2014-11-04 14:33:53

回答

1

您沒有適當地使用配置文件。試試這個:

<configuration> 
... 
    <appSettings> 

     <add key="EnvUnderTest" value="settings_a.xml" /> 
    </appSettings> 
... 
</configuration> 

這應該與你提供的代碼一起工作。顯然,您希望添加的任何其他密鑰也應在<appSettings>之下。

+0

是的,它的工作原理。但是仍然存在一個問題:如何放置這個配置是'cfg'變量。默認情況下,它使用舊式'EnvUnderTest'標籤 – Eugene 2014-11-05 08:04:42

+0

我不理解你的問題。你能改說嗎? – 2014-11-05 08:25:53

相關問題