ASP.NET web.config:configSource与文件属性
在ASP.NET应用程序的web.config
文件中,config的某些部分(如appSettings
和connectionStrings
)支持attributes file
和configSource
。
使用file
-attribute和configSource
什么configSource
? 什么时候应该使用哪个属性,并且可以同时使用?
<?xml version="1.0"?> <configuration> <appSettings file="AppSettings.config"> </appSettings> <connectionStrings configSource="ConnectionStrings.config"> </connectionStrings> <!-- ... --> </configuration>
file
属性
- 指定包含自定义应用程序configuration设置的外部文件的相对path
- 特定于
appSettings
部分 - 将合并 (并覆盖).config文件中的设置
- 修改指定文件时不会导致Web应用程序重新启动
- http://msdn.microsoft.com/en-US/library/ms228154(v=vs.100).aspx
- 使用configuration 。 AppSettings 。 设置 。 添加 API将导致所有设置被合并回configuration上的主
.config
。 保存通话。 - 自.NET 1.1以来
configSource
属性
- 可以应用于configuration文件的大部分部分,而不仅仅是
appSettings
- 将用外部文件覆盖整个部分 , 不合并
- CAN会导致Web应用程序重新启动
- http://msdn.microsoft.com/en-US/library/system.configuration.sectioninformation.configsource(v=vs.100).aspx
- 使用configuration 。 AppSettings 。 设置 。 添加 API将导致所有设置被添加到configuration中的
configSource
指定的文件。 保存通话。 - 自.NET 2.0以来
file
属性指定一个包含自定义设置的外部文件,就像在web.config文件的appSettings条目中一样。 同时, configSource
属性中指定的外部文件包含声明configSource的部分的设置。 例如,如果使用pages部分的configSource属性,则外部文件将包含pages部分的设置。
在文件属性中指定的外部configuration中声明的自定义设置将与web.config文件中的appSettings部分中的设置合并。 同时,configSource不支持合并,这意味着您必须将整个区域设置移动到外部文件中。
http://www.codeproject.com/Messages/1463547/Re-difference-between-configSource-and-file-attrib.aspx