C# strongly typed session/cache wrapper