2011-11-02 46 views
1

每个客户端变量singelton我正在寻找一个设计\模式我的问题。定义在Web开发BLL

我想在web开发环境中声明一个单身变量, 但我希望它是每个会话每个用户的单身人士。

即MyClass.StaticVar将再次为每个客户端进行初始化每个会话 并且该客户端全局访问。

你会建议什么? 什么是所有的缓存选项\在Web的应用程序BLL层可能级别(我的理解,我们可以使用会话字典只有在ASPX和ASCX后面的代码吧?)

回答

1

我做这样的事情:

public class MyClass 
{ 
    public static MyClass StaticVar 
    { 
     get 
     { 
      var s = HttpContext.Current.Session["MyClass"] as MyClass; 
      if (s==null) 
      { 
       s = new MyClass(); 
       HttpContext.Current.Session["MyClass"] = s; 
      } 

      return s; 
     } 
    } 
} 

您可以在上面的示例中添加锁定(lock语句)以使其成为线程安全的。

+0

会议可在任何层?不只是背后的aspx和ascx代码? –

+0

您需要调用您的代码隐藏 – sq33G

+0

我已经更新了我的代码构造时向内通过单一实例上下一节课。 –