.NET CORE Autofac批量依赖注入

.NET CORE Autofac批量依赖注入

1、右键添加Autofac的Nuget包
2、修改Startup类的ConfigureServices方法:
单个依赖注入是:

services.AddTransient<IUserInfoService, UserService>();

批量依赖注入是:

//批量匹配注入,使用AutoFac提供的容器接管当前项目默认容器
   var builder = new ContainerBuilder();
   //注入entity层的repository类builder.RegisterType(typeof(TUserRepository)).As(typeof(IUserRepository)).InstancePerDependency();
   //批量注入Repository的类            
   var assembly = Assembly.Load("Service");
   builder.RegisterAssemblyTypes(assembly).AsImplementedInterfaces();

   builder.Populate(services);
   var container = builder.Build();
   //ConfigureServices方法由void改为返回IServiceProvider
   return new AutofacServiceProvider(container);

整个方法示例:

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });
    #region EF连接MYSQL
    services.AddDbContext<EFDbContext>(options =>
    {
        var connection = this.Configuration["DbConnection:mySqlConn"];
        options.UseMySQL(connection);
    });

    #endregion
    //将Iservices注入到Services,依赖注入
    //services.AddTransient<IUserInfoService, UserService>();
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);


    批量匹配注入,使用AutoFac提供的容器接管当前项目默认容器
    var builder = new ContainerBuilder();
    //注入entity层的repository类builder.RegisterType(typeof(TUserRepository)).As(typeof(IUserRepository)).InstancePerDependency();
    //批量注入Repository的类            
    var assembly = Assembly.Load("Service");
    builder.RegisterAssemblyTypes(assembly).AsImplementedInterfaces();

    builder.Populate(services);
    var container = builder.Build();
    //ConfigureServices方法由void改为返回IServiceProvider
    return new AutofacServiceProvider(container);

}

依赖注入相关理解可以去看:
https://blog.csdn.net/hiliqi/article/details/80611209

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值