J'ai ce problème vraiment étrange et je suis sûr que je manque quelque chose d'évident ici. J'ai ces deux lignes:
int i = 0; HttpContext.Current.Session["i"] = i; i++;
6 Réponses :
Merci Codecaster - va le donner. Je pensais juste que c'était toujours la valeur qui a été stockée.
votre droit avec ce que vous avez pensé, les valeurs sont stockées dans des sessions
Dans votre premier exemple, vous stockez une référence à l'objet (la liste des listes). Donc, si la liste Dans le deuxième exemple, vous utilisez une valeur Type: P> code> est mise à jour, elle réfléchira à la session. Ceci est un type de référence.
int i = 0;
HttpContext.Current.Session["i"] = i;
i++;
Dans le premier exemple, votre variable de session pointe vers un La deuxième variable de session pointe vers un type référence code> afin qu'il soit mis à jour car les deux références indiquent la même valeur. P>
primitive (valeur) code> pour avoir des copies distinctes de la valeur. P>
la bonne voie doit être: le httpcontext.current.session ["i"] em> reste 1. p> p> p>
Dans le premier exemple, votre variable de session pointe vers une référence, il est donc mis à jour car les deux références indiquent la même valeur.
Donc avant de vous attribuer à la session, vous le convertissez en JSON, puis assignez P >
if (HttpContext.Current.Session[listModelType + "ListModel"] != null) { listModel = JsonConvert.DeserializeObject<*CLASS name of lsitmodel*>((string)HttpContext.Current.Session[listModelType + "ListModel"]); }
Dans le premier exemple, votre variable de session pointe vers une référence, il est donc mis à jour car les deux références indiquent la même valeur.
Donc avant de vous attribuer à la session, vous le convertissez en JSON, puis assignez P >
if (HttpContext.Current.Session[listModelType + "ListModel"] != null) { listModel = JsonConvert.DeserializeObject<*CLASS name of lsitmodel*>((string)HttpContext.Current.Session[listModelType + "ListModel"]); }