首页 > 其他分享 >.Net Core AutoFac 批量注入

.Net Core AutoFac 批量注入

时间:2024-03-04 13:57:41浏览次数:19  
标签:Load Core AutoFac Assembly Repository Service builder Net

先从NuGet包里下载这2个文件

然后创建一个类 继承:Autofac.Module

using System.Reflection;
using Autofac;

namespace RBAC_Api
{
    public class RbacModule:Autofac.Module
    {
        /// <summary>
        /// 重写 Load方法
        /// </summary>
        /// <param name="builder"></param>
        protected override void Load(ContainerBuilder builder)
        {
            //反射加工厂设计模式完成的
            //业务逻辑
            //1.通过反射的方式加载类库()
            //2.Assembly 反射的类库
            //原理:通过Assembly这个类来动态加载程序集,然后Autofac 会扫描加载的程序集中的类			型,寻找可以注册为服务的类型
            var Repository = Assembly.Load("RBAC_Repository");
            var Service = Assembly.Load("RBAC_Service");

            //将程序集注入到AutoFac当中
            //AsImplementedInterfaces()比如你现在是一个实现类,它会自动找到它的接口来实现
            builder.RegisterAssemblyTypes(Repository).Where(x => x.Name.EndsWith("Repository")).AsImplementedInterfaces();
            builder.RegisterAssemblyTypes(Service).Where(x => x.Name.EndsWith("Service")).AsImplementedInterfaces();
            //注入单个文件
            //builder.RegisterType(typeof(RBACDbContext));

            base.Load(builder);
        }
    }
}

//将.NET Core 自带的IOC 由AutoFac 接管
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder =>
{
    //RbacModule自己创建的Module类
    builder.RegisterModule(new RbacModule());
});

Program.cs中注入

标签:Load,Core,AutoFac,Assembly,Repository,Service,builder,Net
From: https://www.cnblogs.com/Ouyx/p/18051651

相关文章

  • c#之asp.net的管道处理模式pipeline
    管道在进入管道之前首先要知道asp.netisApi所有的请求是由IIS转发给asp.netisApiHttpWorkerRequest监听asp.netisApi中的队列,HttpWorkerRequest是管道的执行入口 注册中间件的过程在响应请求的时候会触发事件,需要Config中配置以下是HtttpAplacation中的部分事件,在请求进......
  • .net core UI测试
    背景从后端测试的角度来看前端测试;后端测试  黑盒测试:自动化接口测试,不关心内部实现,只关心入参出参,出于用户角度来测试完整功能;  白盒测试:代码层单元测试,关心内部实现,聚焦核心方法,出于开发角度来测试部分核心功能;前端测试  黑盒测试:(待实现)  白盒测试:(未实现)......
  • Net7升级到Net8相关问题
    除了按照网上常规Net8升级步骤外,编译和运行都会发生一些异常和错误,代码兼容性根据提示倒是可以修改。倒是运行时错误,网上资料比较少,下面会持续登记升级过程中踩的坑:1. MediatR库升级到最新的12.2后,报错各种服务找不到,实际是没有DI实现:原来注册一般这么写:1services.AddMedia......
  • C#/.NET/.NET Core优秀项目和框架2024年2月简报
    前言公众号每月定期推广和分享的C#/.NET/.NETCore优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码......
  • .NET开源功能强大的串口调试工具
    前言今天大姚给大家分享一款.NET开源的、功能强大的串口调试工具:LLCOM。工具介绍LLCOM是一个.NET开源的、功能强大的串口调试工具。支持Lua自动化处理、串口调试、串口监听、串口曲线、TCP测试、MQTT测试、编码转换、乱码恢复等功能。功能列表收发日志清晰明了,可同时显示HEX......
  • Powercat 是 Netcat 的 PowerShell 版本
    Powercat是Netcat的PowerShell版本。支持Powershell版本2及更高版本。安装powercat是一个PowerShell函数。在执行之前,您需要先加载这个函数。您可以将以下命令之一放入您的PowerShell配置文件中,这样在PowerShell启动时就会自动加载powercat。从下载的.ps1文......
  • ASP.NET(C#)返回上一页(后退)代码
    转:ASP.NET(C#)返回上一页(后退)代码//方法一protectedvoidPage_Load(objectsender,EventArgse){    if(!IsPostBack)   {ViewState["BackUrl"]=Request.UrlReferrer.ToString();}}//////返回按钮点击事件///protectedvoidButton1_Click(object......
  • D - Diversity of Scores
    D-DiversityofScoreshttps://atcoder.jp/contests/abc343/tasks/abc343_d 思路准备两个map第一个存储,每个分数作为key,以及得此分数的运动员列表作为value这样,可以非常快速统计出某一时刻所有分数总数。第二个存储,每个运动员作为key,以及此运动员当前的分......
  • Asp.Net Core Web Api 对于ControllerBase的一些个人习惯扩展
    ApiResponse类是我定义的返回基类,Code我定的是0成功不等于0失败,对于Data我习惯于写object类型,不习惯写泛型,我习惯于给ControllerBase写扩展来定义我的返回方法,在写一个类继承于ControllerBase让后控制器再去继承这个类,也是可以的对于GetUserCode和GetRoleCode是方便获取to......
  • 【XInput】手柄模拟鼠标运作之 .NET P/Invoke 和 UWP-API 方案
    上一篇中,老周简单肤浅地介绍了XInputAPI的使用,并模拟了鼠标移动,左、右键单击和滚轮。本篇,咱们用.NET代码来完成相同的效果。说起来也是倒霉,博文写了一半,电脑忽然断电了。不知道什么原因,可能是UPS电源出故障。重新开机进来一看,博文没有自动保存到草稿箱。我记得以前是有自......