2010-07-06 3 views
85

ConfigurationManager.AppSettings [ "blah"]가 web/app.config에 없으면 [ "blah"] 예외가 발생합니까?ConfigurationManager.AppSettings [ "blah"]가 "blah"가없는 경우 예외가 발생합니까?

슈퍼 게으른 질문에 진심으로 사과드립니다.

+5

-1 : 당신은 이미 게으른 질문이라는 걸 알고 있기 때문에 실제로이 질문을 게시하는 것보다 * 적은 * 노력을하지 않을 것입니까? –

+0

또는 ['NameValueCollection.Item'] (http://msdn.microsoft.com/en-us/library/8d0bzeeb.aspx) 속성에 대한 설명서를 참조하십시오 ... –

+2

답변 해 주셔서 감사합니다. 나는 이런 질문을하는 습관을 짓지 않으려 고 노력할 것이다. – Ben

답변

95

아니요, null을 반환합니다. 에서

+12

+1하기 때문에 원하는 것입니다. –

-2

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

편집 : 이것은 분명히 잘못된 것입니다. 아래의 유용한 설명을 위해 왼쪽.

+1

귀하의 질문에 대한 대답은 @Tim 언급 한 것입니다. 이 페이지에서는 appsettings를로드 할 수 없으면 예외가 발생한다고 지적했습니다. 그러나 appsettings에 값이없는 경우 예외가 발생하지 않습니다. 값이 사전에 없기 때문에 오류를 던지는 것은 실제로 의미가 없습니다. 그러나 사전이 존재하지 않는다면 오류가 발생할 수 있습니다. – spinon

+0

이 링크는 'NameValueCollection'을 찾을 수 없으면 시스템에서 * 설정을 찾을 수 없다는 예외가 발생한다고 말합니다. 이름 값 컬렉션 존재하지 않는 단일 값을 검색하려고하면 컬렉션이 예외를 발생시키지 않습니다. – Dexter

4

아니요, null을 반환합니다.

get 메소드는 지정된 키가 값 때문에 반환 및 널 발견되지 않기 때문에 반환되는 널 (null) 사이를 구분하지 않습니다 the MSDN documentation에서 -

ConfigurationManager.AppSettings는이 NameValueCollection입니다 키와 연관된 null입니다.

(내 강조)

4

는 아니, null를 반환합니다.

appSettings는이 NameValueCollection합니다 - NameValueCollection.Get 페이지의 caution에 따라 :

이 방법은 다음과 같은 경우에 Null 참조를 (Visual Basic의 경우 Nothing)을 반환 : 1) 키를 지정한 경우 찾을 수 없습니다. 2) 지정된 키가 이고 해당 값이 인 경우 null 참조 (Visual Basic의 경우 Nothing) 인 경우 이 방법 은 두 개의 사례를 구분하지 않습니다.

1

다른 답변은 Item 속성에 대한 설명서를 참조합니다. 다음 코드 조각을 보면서 관련성이있는 이유가 즉시 명확하지 않을 수도 있습니다.

ConfigurationManager.AppSettings["blah"] 

대괄호 구문은 C#에서 인덱서에 액세스하는 데 사용됩니다. 이 속성은 배열과 동일한 방식으로 클래스의 색인을 생성 할 수있는 특수한 속성입니다. NameValueCollection.Item 속성의 정의를 보면 일반 속성 구문을 사용하지 않는다는 것을 알 수 있습니다.this 키워드와 인덱서 매개 변수는이 속성을 인덱서로 정의하는 데 사용됩니다.

public string this[ 
    string name 
] { get; set; } 

설명서에서 인덱서는 암시 적으로 Item이고 매개 변수는 대괄호로 묶여 있습니다. Get 방법을 참조 답변이 있었다 이유

Indexers as shown in the MSDN documentation.

그것은 나에게 명확하지 않습니다 - 어쩌면 하나가 다른 호출? 널 반환됩니다 - 당신이 존재하지 않는 키에 액세스하는 경우 어떤 속도에서

, 질문에 대답하는 ...

번호는 예외가 발생되지 않습니다.

다음은 NameValueCollection.Item 속성 관련 문서의 관련 섹션입니다.

이 속성은 다음과 같은 경우에 null을 반환합니다. 1) 지정된 키를 찾을 수없는 경우. 2) 지정된 키가 발견되어 그 관련 지을 수 있었던 값이 null 인 경우 이 속성은 두 가지 경우를 구분하지 않습니다.

관련 문제