-5

为什么我不能做这样的事情?

这是记录器类中的属性

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- 我怎样才能避免它?

4

1 回答 1

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>();
}
于 2012-09-20T19:44:18.780 回答