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