WebConfigurationManager
과 의 차이점은 무엇입니까 ConfigurationManager
?
언제 다른 것을 사용해야합니까?
업데이트 됨
방금을 보았고 WebConfigurationManager
어떤 이유로 든 ConfigurationManager
(배열과 같이) 에서처럼 연결 문자열에 액세스 할 수 없습니다 . MS가 왜 이렇게 만들 었는지 아무도 말해 줄 수 있습니까? .NET Framework를 사용하여 필요한 연결 문자열을 얻는 것이 고통스러운 것 같습니다 WebConfigurationManager
.
CAVEAT와 함께 다시 업데이트되었습니다!
System.Configuration
프로젝트에 추가 된 네임 스페이스에 대한 참조가없는 경우 WebConfigurationManager.ConnectionStrings
비슷한 배열에 액세스하려고하면 Visual Studio에서 오류를 표시합니다 !
답변
WebConfigurationManger는 웹 애플리케이션 내에서 구성 상속을 처리하는 방법을 알고 있습니다. 아시다시피 하나의 응용 프로그램에 여러 개의 web.config 파일이있을 수 있습니다. 하나는 사이트 루트에 있고 하나는 하위 디렉터리에 있습니다. 가능한 재정의 된 구성을 얻기 위해 GetSection () 메서드에 경로를 전달할 수 있습니다.
Reflector를 사용하여 WebConfigurationManager를 살펴보면 상황이 분명합니다.
public static object GetSection(string sectionName)
{
...
return ConfigurationManager.GetSection(sectionName);
}
public static object GetSection(string sectionName, string path)
{
...
return HttpConfigurationSystem.GetSection(sectionName, path);
}
답변
WebConfigurationManager는 ASP.NET 응용 프로그램을 위해 특별히 만들어졌습니다.
WebConfigurationManager는 웹 응용 프로그램에 적용 할 수있는 구성 파일을로드하는 추가 메서드를 제공합니다.
ConfigurationManager는 “.exe”응용 프로그램에 적용 할 수있는 구성 파일을로드하는 방법도 제공합니다.
WebConfigurationManager를 살펴보고 ConfigurationManager로 단순히 할 수없는 것을 제공하는지 확인하고 대신 사용하는 것이 좋습니다. 그렇지 않으면 ConfigurationManager를 사용하면 웹과 데스크톱 aps간에 코드를 훨씬 쉽게 사용할 수 있습니다.
답변
WebConfigurationManager는 System.Web 어셈블리에 있지만 반환하는 ConnectionStringSettingsCollection은 System.Configuration에 있습니다.
오류가 발생하는 경우
[]를 사용하여 인덱싱을 ‘System.Configuration.ConnectionStringSettingsCollection’형식의 식에 적용 할 수 없습니다.
배열 인덱스에 액세스하는 동안 …
WebConfigurationManager.ConnectionStrings["Name"].ConnectionString
어셈블리 System.Configuration에 대한 참조가 있는지 확인하십시오.
답변
연결 문자열에 대해 무엇을 의미하는지 잘 모르겠습니다.
WebConfigurationManager.ConnectionStrings를 호출 하면 ConfigurationManager.ConnectionStrings 를 호출 한 경우와 동일한 System.Configuration.ConnectionStringSettingsCollection이 반환 됩니다.
그렇지 않으면 XOR이 말했듯이 여러 계층 적 web.config를 처리하도록 설계되어 응용 프로그램에서 폴더를 이동할 때 필요에 따라 결합합니다.