我想我一定会错过一些直接盯着我的东西。
这是我的代码:
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列,它会自动递增,所以我不认为这可能是问题。
答案 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
构造函数的代码,那么它也会很有帮助。