繁体   English   中英

覆盖App.Config设置

[英]Overriding App.Config settings

我们有一个app.config文件,列出了特定的端点地址以及一些其他服务设置。 我们希望使用由其所在环境设置的外部配置文件来更改这些设置。我们希望它能够动态读取该环境的外部配置文件,而无需硬编码值。

我知道有一种方法可以在特定于该部分的部分中指定外部文件。 有没有办法动态设置这个位置?

我最后通过修改设置将其设置为外部配置文件:

    System.Configuration.AppSettingsSection appsettings = config.AppSettings;
    appsettings.File = Environment.CurrentDirectory + "\\configs\\" + configFile;
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appsettings");

这将允许您动态地将其设置为您希望它的任何配置文件。

您的第一个问题 - 是的,您可以使用外部文件“覆盖”任何配置部分(例如<client><bindings>等非部分组,例如<system.serviceModel> ):

<client configSource="yourCustomClient.config" />

Visual Studio将突出显示错误 - 但它有效! - 这只是Visual Studio编辑器的缺陷。

你的第二个问题:不,我不相信有任何方法可以使这真正动态 - 我能想到的最好的是在构建和/或安装时对配置文件进行某种XML转换。

我认为此链接将帮助您动态加载任何App.Config文件并使用WCF服务。

你的,Alois Kraus

我的建议是在xap中进行任何wcf配置,并将环境信息作为参数传递。 所有WCF配置调用都可以通过代码完成,而无需使用web.config中的设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM