我有一组由用户控件组成的aspx页面。每个usercontrol都继承自基类。在该基类中,我想在我的用户控件中放置一些我需要访问的公共数据对象(通过EF)。如何有效地执行此操作,以便每个用户控件访问相同的类实例或数据副本?
答案 0 :(得分:0)
您可以使用Singleton Per Request pattern。如果您只希望在请求的生命周期内可以使用对象的单个实例,那么它非常有用。
这是通过将项目存储在HttpContext.Items
集合中来实现的。
public class SingletonPerRequest
{
public static SingletonPerRequest Current
{
get
{
return (HttpContext.Current.Items["SingletonPerRequest"] ??
(HttpContext.Current.Items["SingletonPerRequest"] =
new SingletonPerRequest())) as SingletonPerRequest;
}
}
}