我有一些代码如下
var MyObjectInstance = httpContext.Items[key] as MyObject
此代码中有什么开销。是否需要反序列化对象以及执行转换。减少这些呼叫的数量是否有显着的性能优势?
答案 0 :(得分:5)
HttpContext.Items
确实返回HashTable
(内存中的字典) - 因此httpContext.Items[key] as MyObject
之类的调用基本上必须
没有反序列化
绩效福利将是一个相对的术语 - 这样的呼叫多少次?这将是一个非常快速的通话,除非你在短时间内拨打数千个电话,我不会太担心它。
答案 1 :(得分:0)
HttpContext.Items(IDictionary)集合非常有用,特别是如果我们想要在服务器端存储对象。看一些有趣的文章 - 3 hot uses for HttpContext.Current.Items they wont tell you about.和When can we use HttpContext.Current.Items to stores data in ASP.NET?
答案 2 :(得分:-2)
HttpContext非常大,因此应该避免。在侧面说明它是密封的,因此不能进行单元测试和嘲笑。
var MyObjectInstance = httpContext.Items[key] = new MyObject();
Items是一个哈希表对象,包含键和值对,因此相对较快。
本文可能有所帮助:http://msdn.microsoft.com/en-us/magazine/cc163730.aspx