我将我的User类存储在HttpRequest的Context.Items属性中,以便在整个页面中使用。
如果我使用转发器,我需要多次参考,也许10次。
从context.items检索是否昂贵?例如,我应该获取它并存储为本地变量,还是直接访问它好几次?
答案 0 :(得分:1)
如果可以使用局部变量,请使用局部变量。它不仅减少了开销,还使您的代码更短,更易于阅读和维护(没有“魔术字符串”)。
Context.Items适用于无法使用本地变量的情况:
获取一个键/值集合,可用于在HTTP请求期间在IHttpModule接口和IHttpHandler接口之间组织和共享数据。
因此,您将使用Context.Items在处理相同请求但无法访问相同Page
对象的两个对象之间传输信息。具体的例子是:
Server.Transfer
在两个页面之间传递数据。Application_BeginRequest
和页面之间传递数据。IHttpModule
(例如,自定义身份验证处理程序)和页面之间传递数据。