1

在我的项目中,我有一个 App.config 用于存储所有配置。我使用了几个部分来获得一个干净易读的 App.config 文件。每个部分处理一个特定的控制器。这是我的文件中的一个示例:

<configuration>
  <configSections>
    <section name="applicationConfiguration" type="System.Configuration.NameValueSectionHandler" />
    <section name="databaseConfiguration" type="System.Configuration.NameValueSectionHandler" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>

  <ApplicationConfiguration/>

  <DatabaseConfiguration>
    <add key="UserID" value="user"/>
    <add key="Password" value="pwd"/>
  </DatabaseConfiguration>

</configuration>

它在我的项目中完美运行,但问题出在 project.test 上。我尝试在测试项目中复制 app.config(并在属性中选择«始终复制»),但它并没有改变任何事情。App.config 文件存在于测试项目的 Bin/Debug 中,但对于测试,它不存在。

所以我尝试在 App.config 中动态添加元素。通过 Configuration Manager 向 AppSettings 部分添加新密钥,它可以很好地工作:

ConfigurationManager.AppSettings.Set("UserID ", " user ");

但是当我想使用sections时我被卡住了;我无法将部分动态添加到 ConfigurationManager。这是我所在的位置:

System.Configuration.Configuration tempConfig = (System.Configuration.Configuration) ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                dbConfig = new NameValueCollection();
                dbConfig.Add("UserID ", "user");
                dbConfig.Add("Password ", "pwd");
                tempConfig.Sections.Add("DatabaseConfiguration ", (ConfigurationSection) dbConfig);

你们有任何想法如何解决这个问题吗?

提前致谢 !

4

0 回答 0