2012-06-04 22 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