NET6使用AutoFac依赖注入(仓储模式)
第一次使用autofac,然后net6最新长期支持的,就想着在net6的基础上使用autofac,我对依赖注入理解很差,一知半解的搞了好久。好在有了一点点的头绪,记录下省的以后忘记(突然发现自己以前用过的东西忘了好多……)
1.首先你要有个仓储模式的项目、这个自己搭建吧
2.在Program.cs文件中:配置程序依赖注入的容器工厂为AutoFac,覆盖默认的容器工厂。
3.添加AutoFacMoudleReg模块,注意:这个名字是你自己起的类名,我们的注册规则写在这个类里面
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());//覆盖默认的容器工厂。
builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
{
builder.RegisterModule(new AutoFacMoudleReg());//添加注册规则模块儿
});
4. AutoFacMoudleReg模块编写。
4.1 首先继承autofac的Module
4.2 其次重写Load方法
4.3 RegisterAssemblyTypes:注册程序集中所有的类型
AsImplementedInterfaces:把服务里继承的接口也注册(应该是这个意思,这块儿不是很了解,大概是这个意思)
PropertiesAutowired:自动属性注入(没有深究,GPT:当一个类中有公共的可写属性时,Autofac 将会自动为这些属性注入相应的依赖项)
InstancePerDependency:生命周期,瞬时的(有没有其他的生命周期,我还没了解)
protected override void Load(ContainerBuilder builder)
{
string basePath=AppDomain.CurrentDomain.BaseDirectory;//获取程序集路径 //你要注册的服务 Dll路径
var assemblysRepositoryPath = Path.Combine(basePath, "DogRepository");
var assemblysServicesPath = Path.Combine(basePath, "DogService"); //注入仓储
var assemblysRepository = Assembly.LoadFrom(assemblysRepositoryPath);
builder.RegisterAssemblyTypes(assemblysRepository)
.AsImplementedInterfaces()
.PropertiesAutowired()
.InstancePerDependency(); //注入服务
var assemblysServices = Assembly.LoadFrom(assemblysServicesPath);
builder.RegisterAssemblyTypes(assemblysServices)
.AsImplementedInterfaces()
.InstancePerDependency()
.PropertiesAutowired();
}
5.最重要的一点!!!因为仓储模式是互相调用的接口,理论上在程序(API/Controllers)层是没办法注入仓储层和服务层的服务的。除非你引用他们,但是如此这样,仓储模式的理念:解耦!就有点违背了。看老张的文章,依赖注入并非为了解耦,emmmm。其实我不是很了解,直接说结论。就是设置仓储和服务生成的相对路径,将 Repository 层和 Service 层项目生成地址改成相对路径,编译的时候就直接生成到了 api 层 bin 下了。这里是看的老张的博客学的。

如此这样就结束了!
NET6使用AutoFac依赖注入(仓储模式)的更多相关文章
- 从零开始,搭建博客系统MVC5+EF6搭建框架(2),测试添加数据、集成Autofac依赖注入
一.测试仓储层.业务层是否能实现对数据库表的操作 1.创建IsysUserInfoRepository接口来继承IBaseRepository父接口 namespace Wchl.WMBlog.IRe ...
- 【干货】利用MVC5+EF6搭建博客系统(二)测试添加数据、集成Autofac依赖注入
PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.测试仓储层.业务层是否能实现对数据库表的操作 1.在52MVCBlog.IRepository程序集下创建IsysUserInf ...
- ASP.NETCore使用AutoFac依赖注入
原文:ASP.NETCore使用AutoFac依赖注入 实现代码 1.新建接口类:IRepository.cs,规范各个操作类的都有那些方法,方便管理. using System; using Sys ...
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
ADO.NET 一.ADO.NET概要 ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库 二.ADO.NET的组成 ①System.Data → DataTable, ...
- Autofac依赖注入
简介 Autofac 是一款超赞的.NET IoC 容器 . 它管理类之间的依赖关系, 从而使 应用在规模及复杂性增长的情况下依然可以轻易地修改 .它的实现方式是将常规的.net类当做 组件 处理. ...
- Autofac 依赖注入小知识
Autofac 依赖注入小知识 控制反转/依赖注入 IOC/DI 依赖接口而不依赖于实现,是面向对象的六大设计原则(SOLID)之一.即依赖倒置原则(Dependence Inversion Prin ...
- asp.net mvc4 简单使用Autofac依赖注入小结
1,首先使用 NuGet下载适当的Autofac版本 文件一,Autofac.3.5.2 文件二,Autofac.Mvc4.3.1.0 1,接口类 public interface IReposito ...
- ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下
先简单了解一这个几个 名词的意思. 控制反转(IOC) 依赖注入(DI) 并不是某种技术. 而是一种思想.一种面向对象编程法则 什么是控制反转(IOC)? 什么是依赖注入(DI) 可以点击下面链接 ...
- Autofac依赖注入框架使用
简介: Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高 控制反转和依赖注入: 控制反转 IOC(Inver ...
- Quartz使用AutoFac依赖注入问题小结
theme: channing-cyan highlight: a11y-dark 背景 最近在做一个需求,就是在Job中捕捉异常,然后通过邮件或者消息的方式推送给指定人员,在需求实现的过程中遇到的一 ...
随机推荐
- kotlin类与对象——>可见性修饰符
1.在 Kotlin 中有这四个可⻅性修饰符:private .protected .internal 和public .如果没有显式指定修饰符的话,默认可⻅性是 public . 2.包,函数.属性 ...
- 4:Exchange安装后的任务
4:Exchange安装后的任务 安装后的任务: 第一:证书的申请安装,分配服务略 注意项:如果是通配符证书,不能直接分配pop的服务 第二:虚拟目录的配置 Exchang ...
- 工作使用:Exchange命令集(超级重要)
工作使用:Exchange命令集(超级重要) 命令1:导出某个用户的邮件 New-MailboxExportRequest -mailbox dusonglin ...
- AutoDarkMode:Win上自动切换深浅模式的工具
AutoDarkMode是一款Windows上用于根据时间自动切换亮暗主题的工具. 打开后,即可设置根据时间(通常是白天亮晚上暗)自动切换主题(需要软件开机启动). 你也可以在切换颜色主题的同时设置两 ...
- IDEA久违了!FeignX插件支持方法级别的导航跳转
> 需求调研:发现身边的同事追踪业务代码的时候,如果遇见feign接口,大家都是通过全局搜url进一步找到远程服务的实现.一旦项目大起来,路径变得复杂甚至重名之后,这将会是灾难. 市面上并没有很 ...
- Reviewbot 开源 | 为什么我们要打造自己的代码审查服务?
Reviewbot 是七牛云开源的一个项目,旨在提供一个自托管的代码审查服务, 方便做 code review/静态检查, 以及自定义工程规范的落地. 静态检查不是个新鲜事. 我记得早在几年前,我们就 ...
- games101_Homework6
实现 Ray-Bounding Volume 求交与 BVH 查找 在本次编程练习中,你需要实现以下函数: • IntersectP(const Ray& ray, const Vector3 ...
- Java 网络编程----初探Servlet
Jave Web是java面向web开发的相关技术,他是相关技术的统称,并不是指某一个单一的技术.在我之前的博客中(Java网络编程----通过实现简易聊天工具来聊聊BIO模型 https://www ...
- Windows 使用 Intel(R) Arc(TM) GPU 推理ONNX 模型
这不刚换了一个笔记本电脑,Thinkpad T14P,带有Intel ARC GPU,今天我们来尝试用这个GPU来推理ONNX模型. 环境安装 查阅了相关文档,最好使用py310环境,其他版本可能存在 ...
- antlr的使用
我从以下几个问题入手介绍ANTLR的相关知识. 1 ANTLR是什么? ANTLR, ANother Tool for Language Recognition, 是一个可以接受含有语法描述的语言描述 ...