我很好奇在 MVC3 中创建站点范围的全局变量的最佳方法是什么。
也就是说,在多个请求/访问者之间共享的变量。
我猜,如果可能的话,一旦网站被回收,变量就会丢失..这样做还有其他利弊吗?
最好的办法当然是将所有内容存储在数据库中,但这更像是一个可能/实验性的问题;)
我很好奇在 MVC3 中创建站点范围的全局变量的最佳方法是什么。
也就是说,在多个请求/访问者之间共享的变量。
我猜,如果可能的话,一旦网站被回收,变量就会丢失..这样做还有其他利弊吗?
最好的办法当然是将所有内容存储在数据库中,但这更像是一个可能/实验性的问题;)
您是否考虑将数据作为 XML 保存在 App_Data 文件夹中?
您可以创建一个单例,但这只是每个 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; }
}