I\'m using the session to hold a custom object UserSession and I access the session like this:
UserSession TheSession = HttpContext.Current.Session[\"UserSes
The standard session provider is a simple dictionary that stores objects in memory.
You're modifying the same object that you put in the session, so the modifications will persist.
(unless you're using an evil mutable struct)
Yes it is the same object. It is very easy to see in the following example:
Session["YourObject"] = yourObject;
yourObject.SomeProperty = "Test";
var objectFromSession = (YourObjectType)(Session["YourObject"]);
Response.Write(objectFromSession.SomeProperty);
The Write
will display: Test
It doesn't need to reassign the object. Because both of them are pointing to same instance in memory
create a static class with static properties:
public static class UserSession
{
public static int UserID
{
get { return Convert.ToInt32(Session["userID"]); }
set { Session["userID"] = value; }
}
}
When u use it:
UserSession.UserID = 23;
Response.Write(UserSession.UserID);
it will use the session variable to store information passed to this property.