2017-05-20 20 views
0

是否通過 WebConfigurationManager.AppSettings("Setting1")WebConfigurationManager.ConnectionStrings("Conn1").ConnectionString讀取web.config設置每次發生時都會對底層web.config文件進行物理訪問?讀取web.config設置文件系統性能

如果是,將這些包裹在共享(靜態)方法

Public Class MyAppSettings 
    Public Shared Function Conn1() As String 
     Return WebConfigurationManager.ConnectionStrings("Conn1").ConnectionString 
    End Function 
    Public Shared Function Setting1() As String 
     Return WebConfigurationManager.AppSettings("Setting1") 
    End Function 
End Class 

改變web.config中是如何被訪問的方式設置?將設置緩存直到web.config文件被修改?

回答

1

每次調用這些方法都會導致對web.config的物理訪問。用靜態方法包裝它們不會改變,每次調用都會發生物理訪問。

+0

與將這些設置放入.dll文件(但我們無法在運行時更改設置)相比,頻繁訪問web.config顯着的性能影響? – Megrez7

+1

物理訪問總是花費比硬編碼值更長的時間,但我們談論的是一兩毫秒,這並不重要,通過在運行時對「系統」進行更改的能力遠遠超過了「擊中」我的想法是。 –

+0

我已經做了一些進一步的研究,發現一旦第一次訪問web.config就會緩存在內存中。所以它不會導致對文件的物理訪問。資料來源:https://www.codeproject.com/Articles/785097/Web-Config-is-Cached – Megrez7