asp.net中基类中的共享数据

时间:2010-07-16 14:52:37

标签: c# oop

我有一组由用户控件组成的aspx页面。每个usercontrol都继承自基类。在该基类中,我想在我的用户控件中放置一些我需要访问的公共数据对象(通过EF)。如何有效地执行此操作,以便每个用户控件访问相同的类实例或数据副本?

1 个答案:

答案 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;

        }
    }
}