Autofac Mvc Webapi注入笔记

 

 private static void MvcIoc(ContainerBuilder builder)
        {
            builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).Where(t => !t.IsAbstract && (typeof(IHttpController).IsAssignableFrom(t) || typeof(IController).IsAssignableFrom(t))).InstancePerLifetimeScope();
            var container = builder.Build();
            GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);//ApiController WebApi注入 
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//普通的MVC Controller 注入 
            
        }


MVC Filter注入 通过属性注入

builder.RegisterFilterProvider();

在Filter里通过属性就可以了

 

在Web Api请求中,没有注入,又需要获取其实例,可以这样获取

IDependencyScope dependencyScope = this.Request.GetDependencyScope();
ILifetimeScope requestLifetimeScope = dependencyScope.GetRequestLifetimeScope();
var customerService = requestLifetimeScope.Resolve<ICustomerService>();

  

在MVC中这样获取

var customerService = System.Web.Mvc.DependencyResolver.Current.GetService(typeof (ICustomerService));

或者
var customerService = System.Web.Mvc.DependencyResolver.Current.GetService<ICustomerService>();

  

 

相关文章:

  • 2021-11-27
  • 2021-09-14
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-23
  • 2022-01-18
猜你喜欢
  • 2021-06-26
  • 2022-01-02
  • 2022-12-23
  • 2021-05-31
  • 2021-06-29
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案