2017-05-20 43 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