2013-03-08 106 views
6

我很好奇web.config是如何加載到應用程序中的,是否在web.config中實際解析web.config文件時引用任何值,或者在應用程序啓動時它是否會將值加載到單例中?應用程序啓動後,如何從web.config讀取值?

這次來到我的腦海裏,因爲我想在web.config中的global.asax.cs檢查的值在每個請求的基礎:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if(ConfigurationManager.AppSettings["abc"] != null) 
    { 


    } 
} 

回答

4

當應用程序第一次收到請求時,會解析配置文件並加載其設置。這些設置隨後被緩存,以便後續調用不需要重新解析配置文件。這就是爲什麼當一個配置文件改變時,應用程序重新啓動並重新編譯。

http://msdn.microsoft.com/en-us/library/ms178685.aspx#calculating_configuration_settings_at_runtime

+1

另請參閱[編輯ASP.NET配置文件](http://msdn.microsoft.com/zh-cn/library/ackhksh7.aspx) – Brandon 2013-03-08 20:32:36

3

,配置文件會在應用程序啓動反序列化到相應的ConfigurationSection類型。

這些通常使用只讀屬性來實現,所以它們確實可以在單例中使用。

+0

沒有我的意思是,他們的ConfigurationSection即得到產生,他們是非常快的,然後右鍵類型的類?即不爲每個查找查找配置文件? – loyalflow 2013-03-08 21:10:46

+0

@ user1361315 - 它們不會生成。它們已經存在 - 實例在啓動時被填充,這就是查詢。所以這個文件只能在啓動時讀取一次。 – Oded 2013-03-08 21:12:34

相關問題