小编Mud*_*auf的帖子

mvc 将 httpcontext 注入服务层

在将 httpContextBase 注入到使用 unity 注入控制器的服务级别对象中时,我遇到了一个大问题。

样品控制器

public HomeController : Controller{
    private IWorkContext _context;

    public HomeController(IWorkContext context){
        _context = context;
    }

}


public WorkContext : IWorkContext{

    private HttpContextBase _httpContext;

        public (HttpContextBase httpContext){
            _httpContext = httpContext;
        }

        public void DealWithCookies(){
            //do some thing with http context and deal with cookies
        }
    }
Run Code Online (Sandbox Code Playgroud)

内部统一引导程序

container.RegisterType<HttpContextBase>().RegisterInstance(new HttpContextWrapper(HttpContext.Current) as HttpContextBase, new ContainerControlledLifetimeManager());

//With this line httpcontextbase is returned but as a singleton instead of new for each request.


   container.RegisterType<HttpContextBase>().RegisterInstance(new HttpContextWrapper(HttpContext.Current) as HttpContextBase, new PerRequestLifetimeManager());

//This …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc unity-container code-injection

5
推荐指数
1
解决办法
2577
查看次数