为什么我不能做这样的事情?
这是记录器类中的元素
public Dictionary<string, string> customProperties
{ get; set; }
这是界面中的属性......
Dictionary<string, string> customProperties
{ get; set; }
然后像这样称呼它......
DatabaseLogger.ILogger logger = new DatabaseLogger.Logger();
logger.customProperties.Add("companyName", "Company");
logger.customProperties.Add("application", "application");
我得到NullReferenceExcpetion
- 我该如何避免呢?
答案 0 :(得分:2)
唯一缺少的是属性的初始化 - 否则为null
(意味着在其上调用Add
将抛出NullReferenceException
)。
DatabaseLogger.ILogger logger = new DatabaseLogger.Logger();
logger.customProperties = new Dictionary<string, string>();
logger.customProperties.Add("companyName", "Company");
logger.customProperties.Add("application", "application");
虽然在Logger
构造函数中可能会做得更好:
public Logger()
{
customProperties = new Dictionary<string, string>();
}