2012-10-26 255 views
1

我很好奇在MVC3中創建站點範圍的全局變量的最佳方法是什麼。網站範圍內的全局變量

即,在多個請求/訪問者之間共享的變量。

我猜測,如果這是可能的,該變量會丟失,只要該網站被回收利用..是否有任何其他利弊呢?

做會offcourse是一切存儲在數據庫中的最好的事情,但是這更多的是有沒有可能/實驗樣的問題;)

+0

我想試驗的具體問題是一個小型的基於網絡的遊戲,在這個遊戲中游客互相競爭,而且真的不需要將數據存儲在數據庫中。 – JensB

+0

什麼樣的數據,一個動態變化的字符串,一個數據庫查詢的結果,一個編譯時間常量? – Servy

+0

根據你的描述,你真正「共享」的是網站依賴的數據,你真的應該創建一個數據庫。這是最好的解決方案。 – Servy

回答

1

你有沒有考慮保存數據在App_Data XML夾?

可能創建一個單例,但這只是每個AppDomain的單個實例。如果你沒有命中20分鐘,IIS將停止運行。

所以另一種真正的方法是堅持價值的地方 - 文件或數據庫。

辛格爾頓解決方案

這裏是C#中的單例模式。

public class MyValues 
{ 
    private readonly static MyValues instance = new MyValues(); 

    private MyValues() { } 

    public static MyValues Instance 
    { 
     get { return instance; } 
    } 

    public string SomeValue { get; set; } 

    public int SomeOtherValue { get; set; } 
} 
+0

Wouldent比做數據庫請求要慢嗎? – JensB

+0

如果沒有人訪問該網站20分鐘,這些值無論如何都是重要的,這可能是一個很好的解決方案 – JensB