如何在依赖项注入中设置会话值
本文关键字:设置 会话 注入 依赖 | 更新日期: 2023-09-27 18:26:54
当尝试访问会话值时,我使用此代码并获取HttpExeption:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
var builder = new ContainerBuilder();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterControllers();
builder.Register(c => GetTransform()).As<ITransform>();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
private ITransform GetTransform()
{
if (Session["Transform"] == null)
Session["Transform"] = new Transform();
return (ITransform)Session["Transform"];
}
如何使用Autofac解析/注入为控制器设置会话值
在GetTransform
方法中访问的Session
属性是在Global.asax.cs
中定义的HttpApplication
对象的属性。
我假设这不是您感兴趣的会话对象。您想要的(我假设)是绑定到当前请求的会话对象(这与从控制器内部访问Session
属性相同)。
以下是您的操作方法:
private ITransform GetTransform()
{
var session = System.Web.HttpContext.Current.Session;
if (session["Transform"] == null)
session["Transform"] = new Transform();
return (ITransform)session["Transform"];
}