【发布时间】:2013-01-12 23:26:39
【问题描述】:
我有一个遗留项目,其中有多个 Web 引用,我想根据环境(本地、开发、登台、生产)配置不同的端点。
我读过这个article,但是VS使用Settings.settings和applicationSettings而不是appSettings,所以不是使用
this.Url = System.Configuration.ConfigurationSettings.AppSettings["foo_Api"]
正在使用this.Url = global::foo.Properties.Settings.Default.foo_Api;
我的 app.config 如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="foo.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<foo.Properties.Settings>
<setting name="foo_Api" serializeAs="String">
<value>http://myserver/server/Api.asmx</value>
</setting>
</foo.Properties.Settings>
</applicationSettings>
</configuration>
我已经阅读了有关使用machine.config 进行配置的信息,但这在我的情况下不起作用,因为同一台机器上有不同的环境。在运行时更改 Url 属性也不是最好的解决方案,因为我需要更改 Web 引用的所有用法。
理想情况下,我想使用appSettings,这样我就可以放置一个local.config 来覆盖端点的值,但是如果有一种简单的方法可以覆盖applicationSettings 的值也可以。
编辑
这是一个 dll 项目。不知道会不会有影响。
【问题讨论】:
-
能否请您澄清您的问题 -
Settings.settings类有什么问题?它只是升级了视觉支持的应用程序配置,具有所有优点。将其更改为旧的应用配置样式有什么问题? -
问题是它使用
applicationSettings,而我无法使用<applicationSettings file=local.config>之类的东西,因为它与appSettings一起使用
标签: c# asp.net .net .net-4.0 configuration