添加到存储库时出现NullReferenceException

时间:2013-10-24 15:00:43

标签: c# exception

我想我一定会错过一些直接盯着我的东西。

这是我的代码:

 var addToBasket = new AddToBasket                                                                         
            {
                RetailerId = retailerId,
                ProductId = productId,
                Price = price,
                CreatedAt = DateTime.Now,
                WidgetImpressionId = widgetImpressionId,
                Quantity = quantity,
                VisitStore = false
            };
            _addToBasketRepository.Add(addToBasket);

Add我得到一个NullReferenceException

除非我检查了所有值,否则它们都不为空:

在VS的Watch窗口中:

  

addToBasket {AddToBasket Id = 0,RetailerId = 80,ProductId = 6566,Price = 1.89,CreatedAt = 24/10/2013 15:57:37,WidgetImpressionId = 191489981,VisitStore = False} WidgetData.AddToBasket

我知道Id = 0但它是一个Id列,它会自动递增,所以我不认为这可能是问题。

2 个答案:

答案 0 :(得分:3)

唯一可能为null以抛出此类异常的对象是_addToBasketRepository

我认为那是你的罪魁祸首。你还没有实例化_addToBasketRepository

即使其他对象为null,在您尝试访问相关对象的属性或方法之前,它们也不会抛出NullReferenceException


您可以在使用_addToBasketRepository

之前添加以下行来解决此问题
// assuming that it is indeed a List and not some other collection
_addToBasketRepository = new List<AddToBacket>()  

答案 1 :(得分:0)

在使用Add方法之前,您是否已初始化_addToBasketRepository?如果您可以包含AddToBasket构造函数的代码,那么它也会很有帮助。