2011-11-02 34 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

我已經更新了我的代碼構造時向內通過單一實例上下一節課。 –