I digressed several times from the session, and from what I could see, the entire state object was deserialized once and only once per request. Of course, just checking is enough - just pull it out twice and check ReferenceEquals .
Of course, placing the value in the field between uses will save some search time, but you only have to pay the cost of deserialization.
If you really want to be sure, you can also double check this by doing ISerializable and running serialize / deserialize calls.
Marc gravell
source share