Autofac是一个开源的轻量级的依赖注入容器,可自动选择使用构造函数注入或者属性注入。

  • 浅浅记录Autofac
    • 一、Autofac包引入
    • 二、Startup类中应用
    • 三、程序集注入
    • 框架图

浅浅记录Autofac

一、Autofac包引入

1、Autofac
2、Autofac.Extensions.DependencyInjection

二、Startup类中应用

1、ConfigureServices中返回注册的Autofac

// 注册Autofac
return RegisterAutofac(services);

2、创建RegisterAutofac类,TeasingDbContext数据库连接字符串,在appsettings.json配置。TeasingDbContext为上下文映射。

     private IServiceProvider RegisterAutofac(IServiceCollection services) {//创建注册组件/服务的构建器var builder = new ContainerBuilder();//将依赖的对象注入builder.Populate(services);//将新的模块注册进去,AutofacDI后面将会用反射进行程序集注入builder.RegisterModule<AutofacDI>();//初始化使用builder.Register(c => {var optionsBuilder = new DbContextOptionsBuilder<TeasingDbContext>();optionsBuilder.UseSqlServer(Configuration.GetConnectionString("TeasingDbContext"));return optionsBuilder.Options;}).InstancePerLifetimeScope();//注册DbContextbuilder.RegisterType<TeasingDbContext>().AsSelf().InstancePerLifetimeScope();//DI创建var Container = builder.Build();return new AutofacServiceProvider(Container);}

三、程序集注入

1、新建类 AutofacDI 需要继承Autofac.Module作为一个容器,实现一次性程序集注入。

protected override void Load(ContainerBuilder builder) {//程序集注入builder.RegisterAssemblyTypes(GetAssemblyByName("TS.Repository")).Where(a => a.Namespace.EndsWith("Repository")).AsImplementedInterfaces();}
public static Assembly GetAssemblyByName(String AssemblyName) {return Assembly.Load(AssemblyName);}

TS.Repository:是程序集名称
EndsWith(“Repository”):以Repository结尾的类
Assembly有三种加载程序集方式:

  1. Assembly.Load(“程序集名称”);
  2. Assembly.LoadFrom(“程序集名称.dll”);
  3. Assembly.LoadFile(“绝对路径”);

框架图

链接: link.
图片: 仅供参考

如有发现错误请联系微信:sunyong8860
看完视频或书籍后小结_.NET

Autofac程序集注入相关推荐

  1. efcore mysql autofac_Asp.NetCore3.1版本的CodeFirst与经典的三层架构与AutoFac批量注入

    Core3.1 CodeFirst与AutoFac批量注入(最下面附GitHub完整 Demo,由于上传网速较慢,这里就直接压缩打包上传了) ===Core3.1 CodeFirst 数据库为远程阿里 ...

  2. Autofac 批量注入

    如果有很多实现接口需要用到autofac进行注入,是不是需要调用ContainerBuilder.RegisterType()这个方法很多次?那有没有一个偷懒的方法呢?只需要三四行代码就可以实现所有接 ...

  3. Autofac 依赖注入框架

    Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高. 官方网站http://autofac.org/ 优点:依 ...

  4. Donut:将.NET程序集注入Windows进程

    Donut是一个shellcode生成工具,它可以从.NET程序集中创建与位置无关的shellcode payloads.此shellcode可用于将程序集注入任意Windows进程.给定一个任意.N ...

  5. Autofac - 属性注入

    属性注入不同于通过构造函数方式传入参数. 这里是通过注入的方式, 在类创建完毕之后, 资源释放之前, 给属性赋值. 这里, 我重新弄一些类来演示这一篇吧. public class ClassA {p ...

  6. .NET MVC5+ Dapper+扩展+AutoFac自动注入实现

    1.首先创建一个MVC项目 定义Model 层  view 层 index.cshtml  控制器层Controllers等文件 2.在线安装或者引用dapper 以及扩展相关包 同时Autofac ...

  7. 【懒人有道】在asp.net core中实现程序集注入

    前言 在asp.net core中,我巨硬引入了DI容器,我们可以在不使用第三方插件的情况下轻松实现依赖注入.如下代码: 1 // This method gets called by the run ...

  8. asp.net mvc Autofac 依赖注入框架 使用

    Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高. 官方网站http://autofac.org/ 源码下载 ...

  9. Autofac依赖注入

    20220708注入学习 注入类 public partial class App : Application {public static string ConnectionString { get ...

最新文章

  1. buu [BJDCTF 2nd]燕言燕语-y1ng
  2. nth-of-type
  3. AChartEngine中的Renderer和DataSet介绍
  4. 抖音云控_抖音云控/快手云控:引领5G电商短视频新潮流
  5. 服务器系统玩dnf,win7系统玩dnf提示正在连接服务器的解决方法
  6. [css] 你有用过CSS预处理器吗?喜欢用哪个?原理是什么?
  7. 一些算法(最短路,线段树,01,完全背包,STL)的基本参考资料
  8. Ubuntu安装JDK,搭建java环境
  9. 2020-10-18
  10. 华为软件在线测试2018,2018华为软件精英挑战赛
  11. FPGA(七) PWM波
  12. ijkplayer播放器h265解码能力调研
  13. VM ESXI安装英伟达显卡驱动
  14. python实现坐标求取_根据相机位姿求指定点的世界坐标及其python实现
  15. ue4 无限地图_基于UE4的开放世界地图架构
  16. 巨头思科生死迷:错失重要时机 辉煌皆成尘土
  17. Speedoffice(PPT)如何做动画演示效果
  18. 【在Angular项目中使用googlemaps】
  19. [进来复制]springboot项目代码混淆,帮你安排的明白的混淆代码!
  20. 移动联通比拼八大热点应用

热门文章

  1. SPM混沌映射(含MATLAB代码)
  2. 打开idea的svn项目弹出Action not found:Subversion.Add提示解决办法
  3. web漏洞--注入漏洞
  4. 关于使用Pytorch时,训练集模型表现很好但测试集模型表现极差的原因
  5. 有限状态机(FSM)设计原理
  6. Java好学吗,我们怎么才能学好Java
  7. java好学么_java是什么好学吗?难不难学?
  8. Python之禅——传说中的蛇宗总纲
  9. Centos7服务器网络配置
  10. 解决CDH HiveServer2 因OutOfMemory errors原因造成异常退出问题