從多個 Web.config 文件訪問 appSettings
我正在設計一個 ASP.NET MVC4 Web App 項目。在我的項目的根目錄中,我有一個
Web.config帶有相應元素的習慣預設文件。特別是,我appSettings定義了一些元素。作為一個範例摘錄來證明這一點:<appSettings> <add key="foo" value="bar" /> </appSettings>自然,我可以在程式碼中使用
ConfigurationManager.AppSettings["foo"]. 這對我來說非常有效。但是,我正在我的項目旁邊創建一個 NuGet 包。該軟體包安裝在我的項目目錄下的自己的Areas目錄中。在這裡,在我的包的根目錄中,我有另一個Web.config文件。這樣,當另一個使用者導入 NuGet 包時,包資源的配置是包的本機配置。讓包裹Web.config包含以下內容:<appSettings> <add key="dirEnabled" value="true" /> </appSettings>只是為了澄清相對路徑,我現在有兩個 Web.config 文件,一個 at
./Web.config和一個 at./Areas/PackageName/Web.config。在我的包中,我想檢索
dirEnabled. 為此,我撥打電話:ConfigurationManager.AppSettings["dirEnabled"]. 但是,這會引發錯誤。似乎只從./Web.config我的包配置文件而不是從我的包配置文件中檢索 appSettings 的集合。是否有可能從我的包的配置文件而不是項目根配置文件中獲取 appSettings 集合?
弄清楚了!要使用不同的配置文件,請合併
WebConfigurationmanager. 因此,要訪問 的 appSettings./Areas/PackageName/Web.config,只需使用:var config = WebConfigurationManager.OpenWebConfiguration("~/Areas/PackageName"); string dirE = config.AppSettings.Settings["dirEnabled"].Value;
嘗試
<appSettings file="<Path_To_Second_Web.Config>"> ... </appSettings >在您項目的 Web.config 中
http://msdn.microsoft.com/en-us/library/aa903313(v=vs.71).aspx