autofac依赖注入,帮我们实例化接口,无需使用传统的New
如:
public class AutoFacController : Controller { public IPeople _people; public AutoFacController(IPeople people) { _people = people; } // GET: AutoFac public ActionResult Index() { ViewBag.test = _people.Getpeople(); return View(); } }
Global.asax中配置如下
//创建autofac管理注册类的容器实例 var builder = new ContainerBuilder(); //下面就需要为这个容器注册它可以管理的类型 //builder的Register方法可以通过多种方式注册类型,之前在控制台程序里面也演示了好几种方式了。 builder.RegisterType<People>().As<IPeople>(); //builder.RegisterType<DefaultController>().InstancePerDependency(); //使用Autofac提供的RegisterControllers扩展方法来对程序集中所有的Controller一次性的完成注册 builder.RegisterControllers(Assembly.GetExecutingAssembly()); //生成具体的实例 var container = builder.Build(); //下面就是使用MVC的扩展 更改了MVC中的注入方式. DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
时间: 2024-10-13 06:23:03