我一直在研究這個問題很久。但我還沒有遇到任何令人滿意的解決方案。如何在WPF應用程序中編輯app.config的ApplicationSettings部分
這種情況是我有一個WPF客戶端應用程序。我有幾個Web引用添加到項目中,我Settings.Designer.cs文件被修改,並具有硬編碼的引用到srever url和端口。這開始反映在ApplicationSettings部分的我的app.config文件中。
在用戶登錄之前,他可以指定服務器的ServerIP和端口的設置。現在我想將這些設置保存在app.config中,並獲取從那裏獲取的服務器IP和端口的值,或將其保存到別處並通過此IP和端口連接到服務器。我希望這些更改能夠持續下去。
我能想到的一個解決方案是通過XML閱讀器讀取app.config,修改文件,保存並以某種方式重新啓動應用程序。
我無法想象一個更好的場景,因爲我認爲ApplicationSettings部分不能從應用程序內部修改。
編輯:
我applicationSettiings部分看起來是這樣的:
<applicationSettings>
<ApplicationName.Properties.Settings>
<setting name="Web_Service_Reference_Name1" serializeAs="String">
<value>http://10.1.100.118:8080/AD/WebService1</value>
</setting>
<setting name="Web_Service_Reference_Name2" serializeAs="String">
<value>http://10.1.100.118:8080/AD/WebService2</value>
</setting>
</ApplicationName.Properties.Settings>
</applicationSettings>
上面的代碼讀取和appSettings部分,而不是的applicationSettings部分,它是通過在設置部分項目屬性訪問的值寫入。 – 2012-02-29 05:39:34
我知道。但是applicationSettings是隻讀的標準NET方法。因此,與使用XML讀寫器編寫applicationSettings的想法相比,這是一個_cheap_解決方法。並讓鬆散重新啓動應用程序... – Steve 2012-02-29 08:09:13
好吧,我明白,applicationSettings部分是隻讀的。但是,當我添加Web引用時,Visual Studio會自動將設置名稱和值添加到此部分,並在每次調用Web服務時自動選取它。它從** Settings.Designer.cs **文件** DefaultSettingValueAttribute **中獲取這個值。 – 2012-02-29 11:16:46