【问题标题】:SettingsPropertyNotFoundException - Trying to allow the user to add new keys and values to the config fileSettingsPropertyNotFoundException - 试图允许用户向配置文件添加新的键和值
【发布时间】:2014-03-25 04:41:17
【问题描述】:

我有一个为不同公司配置的应用程序。

看起来像这样:

<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,编译并运行它,一切都很好。

但是,如果用户将“Instances”更改为 3,并在应用程序运行时将它们复制并粘贴为“Instance_3_...”,它会尝试加载 Instance_3_Name 并得到一个 property not found 异常...? SettingsPropertyNotFoundException

有什么帮助吗?如何告诉我的应用配置文件已更改?还是必须重新编译?

该属性确实存在,并且配置文件正在从实例数中加载“3”,但我猜是因为它在编译时不存在它不存在?

【问题讨论】:

    标签: vb.net winforms dynamic app-config appsettings


    【解决方案1】:

    您需要在修改后强制重新读取配置。

    programmatically refreshing configuration sections

    如果您有时间创建自定义 app.config 配置部分,那么您可能会发现这是一个有利的追求。此外,您可能需要考虑如何触发刷新。用户需要单击刷新按钮还是您打算使用计时器?您还可以添加文件系统观察程序,但这不像上面提到的其他两种技术那样简单。

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多