Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 重复配置键_Asp.net_.net_Web Config - Fatal编程技术网

Asp.net 重复配置键

Asp.net 重复配置键,asp.net,.net,web-config,Asp.net,.net,Web Config,在web.config中,为什么不能有重复的连接字符串和处理程序,但另一方面,我们可以在同一级别或继承层次结构下使用重复的具有相同键名的子元素?我不知道这是否能完全回答您的问题,但我有一些信息想与大家分享 如果你看 ConfigurationManager.AppSettings 然后是NameValueCollection,如果给两个具有相同名称的键,则默认实现将返回最新值(该键顺序中的最后一个值),但如果要支持多键支持,并且希望它返回该键的所有值,则可以用自定义实现替换appSetting

web.config
中,为什么不能有重复的连接字符串和处理程序,但另一方面,我们可以在同一级别或继承层次结构下使用重复的
具有相同键名的子元素?

我不知道这是否能完全回答您的问题,但我有一些信息想与大家分享

如果你看

ConfigurationManager.AppSettings
然后是NameValueCollection,如果给两个具有相同名称的键,则默认实现将返回最新值(该键顺序中的最后一个值),但如果要支持多键支持,并且希望它返回该键的所有值,则可以用自定义实现替换appSettings默认行为

http://www.codeproject.com/Articles/4302/How-to-make-AppSettings-work-with-multiple-values
但对于连接字符串,它是密封类ConnectionStringSettingsCollection

它实现为只支持一个具有相同名称的键,并且在web.config级别,它允许名称的值重复,但当您尝试访问它时,将抛出错误。它在连接字符串的情况下也是有意义的,否则它会混淆选择哪一个


根据我的观点,它只是实现了不同的方式来支持和减少混乱。

@首先感谢您的宝贵意见:-但我想知道为什么只有在处理程序和连接字符串的情况下,它才会抛出异常。此外,在应用程序设置的情况下,它不会变得混乱,因为它只是采用最后一个,那么,为什么在连接字符串和其他字符串的情况下它会变得混乱呢。我没有得到场景的实际情况。如果您的项目或需求需要支持同一个键的多个值,但对于连接字符串和处理程序,组件显然依赖于此,那么您可以在AppSetting上替换case。假设连接字符串支持这种类型的复制,那么连接工厂也会对这种情况感到困惑,因为它依赖于这种情况。Appsettings取决于特定的应用程序组件,所以如果提供了它,它会非常清楚实现中的变化。