Context.Items vs局部变量?

时间:2012-09-16 13:05:21

标签: c# asp.net .net httprequest

我将我的User类存储在HttpRequest的Context.Items属性中,以便在整个页面中使用。

如果我使用转发器,我需要多次参考,也许10次。

从context.items检索是否昂贵?例如,我应该获取它并存储为本地变量,还是直接访问它好几次?

1 个答案:

答案 0 :(得分:1)

如果可以使用局部变量,请使用局部变量。它不仅减少了开销,还使您的代码更短,更易于阅读和维护(没有“魔术字符串”)。

Context.Items适用于无法使用本地变量的情况:

  

获取一个键/值集合,可用于在HTTP请求期间在IHttpModule接口和IHttpHandler接口之间组织和共享数据。

因此,您将使用Context.Items在处理相同请求但无法访问相同Page对象的两个对象之间传输信息。具体的例子是:

  • 使用Server.Transfer在两个页面之间传递数据。
  • Application_BeginRequest和页面之间传递数据。
  • 在自定义IHttpModule(例如,自定义身份验证处理程序)和页面之间传递数据。