2012-09-20 1 views
-5

의 속성 만들기 왜 이런 식으로합니까? 형식 사전

은 ...

Dictionary<string, string> customProperties 
     { get; set; } 

다음과 같이 호출 ... 이것은 인터페이스의 속성입니다

public Dictionary<string, string> customProperties 
     { get; set; } 

로거 클래스의 proerty입니다

DatabaseLogger.ILogger logger = new DatabaseLogger.Logger(); 

logger.customProperties.Add("companyName", "Company"); 
logger.customProperties.Add("application", "application"); 

나는 NullReferenceExcpetion을 얻고 있습니다. 어떻게 피할 수 있습니까?

+3

당신이 그렇게 할 수있는 일을 생각하게 :이 비록

DatabaseLogger.ILogger logger = new DatabaseLogger.Logger(); logger.customProperties = new Dictionary<string, string>(); logger.customProperties.Add("companyName", "Company"); logger.customProperties.Add("application", "application"); 

더 잘 Logger 생성자에서 수행 될 수있다? – Oded

+0

당신은 절대적으로 그렇게 할 수 있습니다. 사전 객체를 먼저 초기화해야합니다. 아래 Oded의 대답을 참조하십시오. – Icemanind

+1

여기에 질문 없습니다. ** 증거가 뒷받침되지 않은 ** 진술 만 (오류 메시지, 예외 등) –

답변

2

유일하게 누락 된 것은 속성의 초기화입니다. 그렇지 않으면 null입니다. 즉, Add을 호출하면 NullReferenceException가 발생합니다.

public Logger() 
{ 
    customProperties = new Dictionary<string, string>(); 
} 
+0

완벽하게 작동합니다. 감사. –

+0

4 분 정도 기다릴 때까지 어떤 이유로 대답을하지 않겠습니다. –