1

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

如果我使用中继器,我需要多次引用它,可能是 10 次。

从 context.items 中检索是否昂贵?例如,我应该获取它并将其存储为局部变量,还是直接多次访问它?

4

1 回答 1

1

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

Context.Items专为不能使用局部变量的情况而设计:

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

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

  • 使用 .在两个页面之间传递数据Server.Transfer
  • Application_BeginRequest在和页面之间传递数据。
  • IHttpModule在自定义(例如,自定义身份验证处理程序)和页面之间传递数据。
于 2012-09-16T14:24:52.650 回答