【发布时间】:2011-11-22 17:20:36
【问题描述】:
我有一个 MVC3 应用程序,我在其中添加了几个简单的缓存变量作为属性。我在Application_Start 中添加我的数据,然后在控制器中尝试将HttpContext.ApplicationInstance 转换回我的类型以访问它。但是,该属性始终为空。这是一个例子:
编辑工作示例
public interface IMyMvcApp
{
Hashtable Cache {get;set;}
}
public class MvcApplication: HttpApplication, IMyMvcApp
{
public Hashtable Cache
{
get { return Context.Cache["MyStuff"] as Hashtable; }
set { Context.Cache["MyStuff"] = value}
}
public void Application_Start()
{
Cache = new Hashtable();
Cache.Add("key", new object());
}
}
public class AController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext context)
{
var myApp = context.HttpContext.ApplicationInstance as IMyMvcApp;
Assert.IsNotNull(myApp.Cache);
}
}
【问题讨论】:
标签: c# asp.net-mvc-3 httpcontext