Во многих местах я видел следующую картину. Рассмотрим код:
Customer cust = (Customer) Session["Customer"];
//Do something to the object cust
Session["Customer"] = cust
и код:
Customer cust = (Customer) Cache["Customer"];
//do something to object cust
Cache["Customer"] = cust;
Теперь во втором случае возвращение объекта cust в Cache не требуется, так как ссылка такая же, и любые изменения в объекте cust должны отражаться в кэше.
Но я не думаю, что это имеет место в случае Session, когда объект cust должен быть явно возвращен в Session. Однако я не уверен. Отразятся ли изменения в сеансе, если я не укажу явно, как указано выше?
А если это нужно сделать явно, почему разница в поведении с объектом Cache? Похоже, что в обоих местах мы выполняем передачу ссылок.
Это для C #, ASP.NET