Сессия проходит как примитивный тип? - PullRequest
0 голосов
/ 20 мая 2018

У меня есть приложение MVC Core Dotnet, и в основном я хотел загрузить представление данных сеанса, но также удалить сеанс после загрузки страницы.Мой код работает, но я не понимаю, почему

public IActionResult Charge(string stripeEmail, string stripeToken, int totalPrice){
    //some stripe code that went here...

    var cart = HttpContext.Session.GetCart();
    ClearSession();
    return View(cart);
}

protected void ClearSession(){
    //creates a new instance if cart doesnt exist otherwise returns it
    var cart = HttpContext.Session.GetCart();

    //clears the items from the collection using .Clear() ...
    cart.RemoveAll();
    HttpContext.Session.SetCart(cart);
}

код работает, когда он помещается в новый метод, например, но если я поместил его в тот же метод, он не работает.Я удивлен, поместив его в новый метод, который сработал, поскольку это противоречит моему пониманию того, как передача по значению работает с типами объектов ... (местоположение объекта будет передано).Он действовал как копия объекта, когда я очистил список элементов в новом методе.

Почему этот код работает?

...