WebConfigurationManager와 ConfigurationManager의 차이점은 무엇입니까?


102

WebConfigurationManager과 의 차이점은 무엇입니까 ConfigurationManager?

언제 다른 것을 사용해야합니까?

업데이트 됨

방금을 보았고 WebConfigurationManager어떤 이유로 든 ConfigurationManager(배열과 같이) 에서처럼 연결 문자열에 액세스 할 수 없습니다 . MS가 왜 이렇게 만들 었는지 아무도 말해 줄 수 있습니까? .NET Framework를 사용하여 필요한 연결 문자열을 얻는 것이 고통스러운 것 같습니다 WebConfigurationManager.

CAVEAT와 함께 다시 업데이트되었습니다!

System.Configuration프로젝트에 추가 된 네임 스페이스에 대한 참조가없는 경우 WebConfigurationManager.ConnectionStrings비슷한 배열에 액세스하려고하면 Visual Studio에서 오류를 표시합니다 !


1
나는 "caveat"가 매우 정확하다고 생각하지 않습니다. system.configuration없이 연결 문자열에 대해 system.web.configuration을 사용합니다.
sclarson

답변:


95

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);
}

25

WebConfigurationManager는 ASP.NET 응용 프로그램을 위해 특별히 만들어졌습니다.

WebConfigurationManager는 웹 응용 프로그램에 적용 할 수있는 구성 파일을로드하는 추가 메서드를 제공합니다.

ConfigurationManager는 ".exe"응용 프로그램에 적용 할 수있는 구성 파일을로드하는 방법도 제공합니다.

WebConfigurationManager를 살펴보고 ConfigurationManager로 단순히 할 수없는 것을 제공하는지 확인하고 대신 사용하는 것이 좋습니다. 그렇지 않으면 ConfigurationManager를 사용하면 웹과 데스크톱 aps간에 코드를 훨씬 쉽게 사용할 수 있습니다.


4

WebConfigurationManager는 System.Web 어셈블리에 있지만 반환하는 ConnectionStringSettingsCollection은 System.Configuration에 있습니다.

오류가 발생하는 경우

[]를 사용하여 인덱싱을 'System.Configuration.ConnectionStringSettingsCollection'형식의 식에 적용 할 수 없습니다.

배열 인덱스에 액세스하는 동안 ...

WebConfigurationManager.ConnectionStrings["Name"].ConnectionString

어셈블리 System.Configuration에 대한 참조가 있는지 확인하십시오.


3

연결 문자열에 대해 무엇을 의미하는지 잘 모르겠습니다.

WebConfigurationManager.ConnectionStrings를 호출 하면 ConfigurationManager.ConnectionStrings 를 호출 한 경우와 동일한 System.Configuration.ConnectionStringSettingsCollection이 반환 됩니다.

그렇지 않으면 XOR이 말했듯이 여러 계층 적 web.config를 처리하도록 설계되어 응용 프로그램에서 폴더를 이동할 때 필요에 따라 결합합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.