在web.config
中,为什么我们不能有重复的连接字符串和处理程序,但另一方面,我们可以在同一级别具有相同键名的重复<appSettings>
个子元素,或者继承层次结构?
答案 0 :(得分:1)
我不会完全回答你的问题,但我有一些我想分享的信息。
如果你看
ConfigurationManager.AppSettings
然后它是NameValueCollection并且如果你给两个具有相同名称的键,默认实现将返回最新值(该键的最后一个值)但是如果你想支持多个键支持并且你想要它返回该键的所有值您可以使用自定义实现替换appSettings默认行为。
http://www.codeproject.com/Articles/4302/How-to-make-AppSettings-work-with-multiple-values
但是在连接字符串的情况下,它是密封类ConnectionStringSettingsCollection。
实现只支持一个具有相同名称的密钥,并且在web.config级别它允许名称的重复值,但是当您尝试访问它时会抛出错误。它在连接字符串的情况下是有意义的,否则它会混淆选择。
根据我的观点,它只是采用不同的方式来支持和减少混淆。