2012-06-04 57 views

回答

4

它總是去,你在這樣的變量持有什麼?

我把我的主設置(只讀)在我web.config文件中<appSettings>區域的變量,例如:

<appSettings> 
    <add key="AmazonS3:CalendarPath" 
     value="http://mycloud.s3-eu-west-1.amazonaws.com/Calendar/" /> 
</appSettings> 

和訪問這些值與

string calPath = System.Configuration.ConfigurationManager.AppSettings["AmazonS3:CalendarPath"]; 

無論是在我的視圖或控制器。

這是一個可愛的地方來保存你的只讀變量的,沒有如果你的Web應用程序是建立與否,編譯或顯示所有源文件母校,你可以很容易地改變變量你需要什麼,不打開一個編譯好的文件,改變它並重新編譯這個項目......節省了很多麻煩,併爲洞應用程序設置提供了一定的動態。


如果另一方面你要讀/寫在你的應用程序中保存的變量方式,你有3種方式,所有的利弊

  1. 使用會話狀態保存變量這是最常用的,但在雲平臺上很糟糕,因爲請求可能會改變服務器和接收到用戶的繼續請求的新服務器,但沒有會話

  2. 使用Cookies保存用戶變量 Cookie可以由用戶隨時修改,因此我們只使用它來保存稍微改變的設置,如UI定義。

  3. 使用緩存層保存變量這是雲平臺中最常用的,因爲您不僅可以保存設置,還可以保存大部分時間訪問的部分數據。

也有Application Settingsglobal.asax女巫非常使用背面的經典ASP天,從那時起,我從來沒有使用它們,因爲它們具有相同的流會話變量,女巫被放置在內存中。 ..任何應用程序池重置,任何新建,所有會話都會丟失。

此外,還有大量的文章可以幫助您更好地瞭解您的所有選項,以便在您的ASP.NET項目中跨變量應用程序保存變量。

+0

親愛的你的回答是非常豐富的,但我的問題是關於恆定不可行 – StormMan

+1

所以,什麼是常數?它是一個在應用程序的整個生命週期中不變的變量......與只讀變量相同!一個常量的真實名稱是「常量變量」,你搞亂了某個地方! 'public static const string USER_NAME =「abc」;'是一個常量變量,變量是'USER_NAME'部分! – balexandre