2012-09-20 102 views
-5

爲什麼不能這樣做?創建類型字典的屬性

這是記錄器類

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

這是在接口屬性的proerty ...

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

然後調用它像這樣...

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

這裏沒有問題。只有**不支持支持證據(錯誤信息,例外等)的聲明 – 2012-09-20 19:46:23

回答

2

唯一缺少的是屬性的初始化 - 它是null否則(意味着調用Add就會拋出NullReferenceException)。

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

完美的作品。謝謝。 –

+0

它不會讓我回答出於某種原因,直到我等了4分鐘或類似的東西。 –