[英]How to update app.config in c#
我的項目是使用MVVM在WPF中開發的。 在viewModel中使用WCF服務。 在View中,存在app.config文件,其中包含有關WCF配置的信息,例如端點信息...。 我們有兩個服務,例如service1和service2都具有相同的功能,但服務地址將不同。 Service1正在與數據庫1通信,而service2正在與數據庫2通信,因此對DB的服務是一對一的映射。 在視圖中,有一個ComboBox,它將顯示兩個選項,例如DB1和DB2。 基於comboBox的選擇,我必須根據WPF-MVVM模式更新我的app.config文件[端點地址]。 因為應用程序應該使用新服務重新初始化-DB函數調用。 因此,如果更改了ComboBox選擇,那么將在ViewModel中編寫命令(命令)的調用位置。 那么如何更新配置文件?
還有其他方法可以實現這一目標嗎?
配置必須在您的啟動項目中,這可能是問題所在
您有兩個相同的WCF服務,並且希望用戶使用ComboBox選擇與您的應用程序進行交互的對象。 因此,您的應用程序只需要在配置文件中為代理定義一個定義。 指向兩個URL中的哪個都無所謂。
您可以在運行時在代理的構造函數中以編程方式設置端點的URL。 我不能從問題中分辨出您使用的是哪種協議,但是這里有一些示例 。
您需要保留一個可能的URL值列表,以允許用戶做出選擇(但這與選擇的URL值不同,我將在后面進行介紹)。 我建議在文件的這一部分中,在配置中使用備用URL(我將猜測http協議,以便您可以理解我的意思)...
<configuration>
...
<appSettings>
<add key="Endpoint1" value="http://whatever"/>
<add key="Endpoint2" value="http://whatever"/>
</appSettings>
...
</configuration>
然后在啟動時,遍歷這些內容,將它們放入您的ComboBox中:
var appSettings = ConfigurationManager.AppSettings;
foreach (var key in appSettings.AllKeys.Where(x=>x.StartsWith("Endpoint"))
{
// put appSettings[key] into the combobox (in a list in your viewmodel if you use MVVM)
}
然后,您需要存儲該用戶選擇了其中之一(並記住在啟動時預先選擇該值)。 我建議使用“用戶設置”,該設置(與“ App.config”文件不同)允許更改值。 有關如何操作,請參見C#中的用戶設置 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.