【问题标题】:Changing the current configuration used by (Web)ConfigurationManager更改 (Web)ConfigurationManager 使用的当前配置
【发布时间】:2023-03-03 01:17:01
【问题描述】:

我正在使用WebConfigurationManager.OpenMappedWebConfiguration 加载自定义配置文件并将其与主web.config 合并。我可以使用生成的 Configuration 来配置我自己的框架,并受益于拥有干净的自定义配置文件和标准的 web.config 并在运行时使用合并视图。

问题是现在我想告诉 ASP.NET 使用该 Configuration 实例作为默认值,以便 WebConfigurationManager.GetSection("mySection") 将返回在我加载的配置文件中定义的部分。

有没有办法通过“标准”实践来做到这一点? (任何涉及X(ml)Document 或反射获取私有方法的都是不可接受的)

【问题讨论】:

    标签: asp.net configurationmanager


    【解决方案1】:

    GetSection() 方法的this 重载能否满足您的需求?它允许您指定从其加载数据的 web.config 文件的路径,如下所示:

    WebConfigurationManager.GetSection("connectionStrings", "/configTest")
    

    【讨论】:

    • 并非如此。我需要替换默认的,以便 ASP.NET 堆栈的其余部分默认使用它
    • 在这种情况下,由于 WebConfigurationManager.GetSection() 从当前 Web 应用程序的默认配置文件中检索指定的配置节。,您需要将合并结果提升到默认配置文件:config.Save(ConfigurationSaveMode.Modified);
    • 我猜你要么误解了这个问题,要么误解了 MSDN 文档。我不想将配置保存到文件中(你不想/不能在网络应用程序上这样做)。我只想让它成为当前配置。
    猜你喜欢
    • 1970-01-01
    • 2018-02-09
    • 2012-07-10
    • 1970-01-01
    • 2010-09-06
    • 2010-09-05
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多