2014-03-24 16 views
0

我有一個應用程序,爲不同的公司配置。SettingsPropertyNotFoundException - 試圖允許用戶添加新的密鑰和值到配置文件

是這樣的:

<setting name="Instances" serializeAs="String"> 
    <value>2</value> 
</setting> 

<setting name="Instance_1_ExportTo" serializeAs="String"> 
    <value>a/gp_import/</value> 
</setting> 
<setting name="Instance_1_ImportFrom" serializeAs="String"> 
    <value>a/gp_export/</value> 
</setting> 
<setting name="Instance_1_CompanyID" serializeAs="String"> 
    <value>WCAIR</value> 
</setting> 
<setting name="Instance_1_Name" serializeAs="String"> 
    <value>a</value> 
</setting> 

<setting name="Instance_2_ExportTo" serializeAs="String"> 
    <value>import/</value> 
</setting> 
<setting name="Instance_2_ImportFrom" serializeAs="String"> 
    <value>export/</value> 
</setting> 
<setting name="Instance_2_CompanyID" serializeAs="String"> 
    <value>BEAVE</value> 
</setting> 
<setting name="Instance_2_Name" serializeAs="String"> 
    <value>b</value> 
</setting> 

現在,如果我把所有這一切,包括1和2到Visual Studio,編譯並運行它一切都很好。

但是,如果用戶在運行應用程序時將「實例」更改爲3,並複製並粘貼它們以生成「Instance_3 _...」,則會嘗試加載Instance_3_Name並獲取屬性未找到異常... ? SettingsPropertyNotFoundException

任何幫助?我如何告訴我的應用程序配置文件已更改?還是必須重新編譯?

該屬性確實存在,並且配置文件正在從實例數加載「3」,但我想它在編譯它不存在?

回答

0

您需要在配置修改後強制重新讀取配置。

請參閱programmatically refreshing configuration sections

如果您有時間創建自定義的app.config配置部分,那麼您可能會發現這是一個有利的追求。另外,您可能需要考慮如何觸發刷新。用戶需要點擊一個刷新按鈕還是打算使用計時器?您還可以添加文件系統觀察器,但這不像上述其他兩種技術那樣簡單。

相關問題