Эта строка кода вызывает бесконечный цикл и переполнение стека:
if (mySession.Current._isCustomer)
cart.Items = ShoppingCart.loadCart(mySession.Current._loginId);
она инициализируется каждым экземпляром класса mysession.и использование родительского класса.
даже при использовании singleton mySession не может решить проблему.
при выполнении этого кода:
session = new mySession();
пытается инициализировать новый ShoppingCard .В карточке покупок запрашивается одноразовый экземпляр mysession.эта строка кода еще не выполнена:
HttpContext.Current.Session["__MySession__"] = session;
, поэтому мы создаем новый экземпляр моего сеанса и ...
это означает переполнение стека!
youможно исправить так:
public static mySession Current
{
get
{
mySession session =
(mySession)HttpContext.Current.Session["__MySession__"];
if (session == null)
{
session = new mySession();
HttpContext.Current.Session["__MySession__"] = session;
session._cart = new ShoppingCart(); //initialize your shoppoing car after adding variable to session !
}
return session;
}
}
public ShoppingCart _cart;// = new ShoppingCart(); remove initialization
посмотрите мои комментарии в коде.