我知道ASP.NET MVC中有一个静态变量并不能保证变量只创建一次。
在应用程序的生命周期内,存储少数常用对象(请求之间全局共享)的正确方法是什么?
答案 0 :(得分:2)
我会使用常规的ASP.NET数据缓存。
应用程序状态仅在数据很少更改时才有用,但通过问题的声音,它会经常更改。它也是自由线程的,并且不会扩展(例如在Web场方案中)。
使用缓存,您可以控制项目的到期时间,在删除项目时指定回调,使用滑动到期,通过接口访问它,这意味着它可以轻松测试(而应用程序状态将不得不被模拟),以及如果你正确设置它可以轻松扩展。
围绕应用程序状态的简单get / set包装器更加健壮。
答案 1 :(得分:1)
Application State是最合适的,因为它在应用程序的所有会话之间共享。