Asp.Net Core中使用Autofac 实现自动注入

时间:2020-03-26 15:36:25   收藏:0   阅读:172

一、为什么使用AutoFac?

Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高,Autofac是.NET领域最为流行的IOC框架之一,传说是速度最快的一个。

     官方网站http://autofac.org/

          源码下载地址https://github.com/autofac/Autofac

二、AutoFac的使用

NuGet安装程序包

技术分享图片

 

 

封装ConfigureAutofac方法通过ConfigureServices进行调用实现自动注入

 

 

        /// <summary>
        /// autofac 自动注入
        /// </summary>
        /// <param name="services"></param>
        /// <returns></returns>
        public IServiceProvider ConfigureAutofac(IServiceCollection services)
        {
            //初始化容器
            var builder = new ContainerBuilder();
            //管道寄居
            builder.Populate(services);
            //业务逻辑层所在程序集命名空间
            Assembly service = Assembly.Load("Api.Service");
            //业务逻辑层接口所在程序集命名空间
            Assembly iService = Assembly.Load("Api.IService");
            //数据访问层所在程序集命名空间
            Assembly data = Assembly.Load("Api.Data");
            //数据访问层接口所在程序集命名空间
            Assembly iData = Assembly.Load("Api.IData");
            //自动注入
            builder.RegisterAssemblyTypes(service, iService, data, iData)
                .AsImplementedInterfaces();
            //构造
            var ApplicationContainer = builder.Build();
            //将AutoFac反馈到管道中
            return new AutofacServiceProvider(ApplicationContainer);
        }

 

      //autofac 自动注入
      return ConfigureAutofac(services);

Controller中使用

    [Route("api/[controller]/[action]")]
    public class AuthController : ApiController
    {
        private readonly ITokenService _tokenService;
        /// <summary>
        /// 
        /// </summary>
        public AuthController(ITokenService tokenService)
        {
            _tokenService = tokenService;
        }
    }

 

原文:https://www.cnblogs.com/ZhengHengWU/p/12574525.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!