ConfigurationManager.AppSettings [ "blah"]가 web/app.config에 없으면 [ "blah"] 예외가 발생합니까?ConfigurationManager.AppSettings [ "blah"]가 "blah"가없는 경우 예외가 발생합니까?
슈퍼 게으른 질문에 진심으로 사과드립니다.
ConfigurationManager.AppSettings [ "blah"]가 web/app.config에 없으면 [ "blah"] 예외가 발생합니까?ConfigurationManager.AppSettings [ "blah"]가 "blah"가없는 경우 예외가 발생합니까?
슈퍼 게으른 질문에 진심으로 사과드립니다.
아니요, null
을 반환합니다. 에서
+1하기 때문에 원하는 것입니다. –
예 http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
편집 : 이것은 분명히 잘못된 것입니다. 아래의 유용한 설명을 위해 왼쪽.
귀하의 질문에 대한 대답은 @Tim 언급 한 것입니다. 이 페이지에서는 appsettings를로드 할 수 없으면 예외가 발생한다고 지적했습니다. 그러나 appsettings에 값이없는 경우 예외가 발생하지 않습니다. 값이 사전에 없기 때문에 오류를 던지는 것은 실제로 의미가 없습니다. 그러나 사전이 존재하지 않는다면 오류가 발생할 수 있습니다. – spinon
이 링크는 'NameValueCollection'을 찾을 수 없으면 시스템에서 * 설정을 찾을 수 없다는 예외가 발생한다고 말합니다. 이름 값 컬렉션 존재하지 않는 단일 값을 검색하려고하면 컬렉션이 예외를 발생시키지 않습니다. – Dexter
MSDN documentation for NameValueCollection.Item Property (String) :
주의
이 속성은 다음과 같은 경우에는 null을 반환 : 1) 지정된 키가 발견되지 않는 경우; 2) 지정된 키가 발견되어 관련 지을 수 있었던 값이 null의 경우 이 속성은 두 경우를 구분하지 않습니다.
아니요, null
을 반환합니다.
get 메소드는 지정된 키가 값 때문에 반환 및 널 발견되지 않기 때문에 반환되는 널 (null) 사이를 구분하지 않습니다 the MSDN documentation에서 -
ConfigurationManager.AppSettings
는이NameValueCollection
입니다 키와 연관된 null입니다.
(내 강조)
는 아니, null
를 반환합니다.
appSettings는이 NameValueCollection합니다 - NameValueCollection.Get 페이지의 caution에 따라 :
이 방법은 다음과 같은 경우에 Null 참조를 (Visual Basic의 경우 Nothing)을 반환 : 1) 키를 지정한 경우 찾을 수 없습니다. 2) 지정된 키가 이고 해당 값이 인 경우 null 참조 (Visual Basic의 경우 Nothing) 인 경우 이 방법 은 두 개의 사례를 구분하지 않습니다.
다른 답변은 Item 속성에 대한 설명서를 참조합니다. 다음 코드 조각을 보면서 관련성이있는 이유가 즉시 명확하지 않을 수도 있습니다.
ConfigurationManager.AppSettings["blah"]
대괄호 구문은 C#에서 인덱서에 액세스하는 데 사용됩니다. 이 속성은 배열과 동일한 방식으로 클래스의 색인을 생성 할 수있는 특수한 속성입니다. NameValueCollection.Item 속성의 정의를 보면 일반 속성 구문을 사용하지 않는다는 것을 알 수 있습니다.this 키워드와 인덱서 매개 변수는이 속성을 인덱서로 정의하는 데 사용됩니다.
public string this[
string name
] { get; set; }
설명서에서 인덱서는 암시 적으로 Item이고 매개 변수는 대괄호로 묶여 있습니다. Get 방법을 참조 답변이 있었다 이유
그것은 나에게 명확하지 않습니다 - 어쩌면 하나가 다른 호출? 널 반환됩니다 - 당신이 존재하지 않는 키에 액세스하는 경우 어떤 속도에서
, 질문에 대답하는 ...번호는 예외가 발생되지 않습니다.
다음은 NameValueCollection.Item 속성 관련 문서의 관련 섹션입니다.
이 속성은 다음과 같은 경우에 null을 반환합니다. 1) 지정된 키를 찾을 수없는 경우. 2) 지정된 키가 발견되어 그 관련 지을 수 있었던 값이 null 인 경우 이 속성은 두 가지 경우를 구분하지 않습니다.
-1 : 당신은 이미 게으른 질문이라는 걸 알고 있기 때문에 실제로이 질문을 게시하는 것보다 * 적은 * 노력을하지 않을 것입니까? –
또는 ['NameValueCollection.Item'] (http://msdn.microsoft.com/en-us/library/8d0bzeeb.aspx) 속성에 대한 설명서를 참조하십시오 ... –
답변 해 주셔서 감사합니다. 나는 이런 질문을하는 습관을 짓지 않으려 고 노력할 것이다. – Ben