Autofac注入仓储

发布时间 2023-08-25 20:56:49作者: IAMLCW

一.安装Nuget包 Autofac  Autofac.Extensions.DependencyInjection

二.在WebAPI中创建Module.cs类 注入仓储层和服务层

public class HiroshiModule:Autofac.Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            var assembly = Assembly.Load("Hiroshi.Repository");
            builder.RegisterAssemblyTypes(assembly)
                //查询文件名以Repository结尾的文件
                .Where(u => u.Name.EndsWith("Repository"))
                .InstancePerLifetimeScope()
                //自动加载 接口
                .AsImplementedInterfaces();


            var service = Assembly.Load("Hiroshi.Service");

            builder.RegisterAssemblyTypes(service)
                //查询文件名以Respority结尾的文件
                .Where(x => x.Name.EndsWith("Service"))
                .InstancePerLifetimeScope()
                //自动加载 接口
                .AsImplementedInterfaces();

           

            base.Load(builder);
        }
    }

三.在Program.cs中注册

builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder =>
{
    //将 HiroshiModule这个类  加载到AutoFac 当中
    builder.RegisterModule(new HiroshiModule());
});

四.然后创建控制台调用Service层