首页 > 代码库 > AutoFac Asp.Net Mvc

AutoFac Asp.Net Mvc

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));

 

AutoFac Asp.Net Mvc