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

물리적 액세스는 항상 값을 하드 코딩하는 것보다 시간이 오래 걸리지 만 밀리 초 또는 2 분의 1을 말하는 것은 중요하지 않으며 런타임시 "시스템"을 변경할 수있는 능력을 얻음으로써 얻을 수있는 가치는 성능 "히트" 내 의견으로는. –

+0

필자는 몇 가지 추가 연구를 수행했으며 web.config가 처음 액세스 된 메모리에 캐싱된다는 것을 알았습니다. 따라서 파일에 물리적으로 액세스하지 않습니다. 출처 : https://www.codeproject.com/Articles/785097/Web-Config-is-Cached – Megrez7