OK, z tamtym błędem sobie poradziłem. Teraz stanąłem na innym błędzie, który także występuje podczas dodawania produktu do koszyk:

Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.

Opis: Podczas wykonywania bieżącego żądania sieci Web wystąpił nieobsługiwany wyjątek. Aby uzyskać dodatkowe informacje o błędzie i miejscu jego występowania w kodzie, przejrzyj ślad stosu. 

Szczegły wyjątku: System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.

Błąd źrdła: 


Wiersz 72:         public static void AddProductToCart(Product theProduct)
Wiersz 73:         {
Wiersz 74:             ShopManage.ShoppingCart.Add(theProduct);
Wiersz 75:         }
Wiersz 76: 

Plik źrdłowy: C:\Users\Luke\Documents\Visual Studio 2010\Projects\e-shop\e-shop\App_Code\BusinessLogic\ShopManager.cs    Wiersz: 74 

Ślad stosu: 


[NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.]
   e_shop.ShopManage.AddProductToCart(Product theProduct) in C:\Users\Luke\Documents\Visual Studio 2010\Projects\e-shop\e-shop\App_Code\BusinessLogic\ShopManager.cs:74
   e_shop.Shop.productDetail.btnAddToCart_Click(Object sender, EventArgs e) in C:\Users\Luke\Documents\Visual Studio 2010\Projects\e-shop\e-shop\Shop\productDetail.aspx.cs:23
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
 

Kod klasy ShopManage:

 
      public static void AddProductToCart(Product theProduct)
        {
            ShopManage.ShoppingCart.Add(theProduct);
        }

Kod klasy ShoppingCart

 
 public void Add(Product theProduct)
        {
            foreach (OrderedProduct existingProduct in _items)
            {
                if (theProduct.Id == existingProduct.ProductId)
                {
                    existingProduct.Quantity += 1;
                    return;
                }
            }
            OrderedProduct myOrderedProduct = new OrderedProduct(theProduct, 1);
            _items.Add(myOrderedProduct);
        }