.net core3.1 下由Autofac接管IOC

 2023-09-06 阅读 19 评论 0

摘要:我们都知道,.net core天生自带IOC容器,但是他的功能其实并不强大,而且有坑:在构造注入的时候,他默认找参数最少的构造函数。 这里,我讲解如何使用Autofac去接管IOC,至于为什么要选Autofac,这个其实我也是随大众ÿ

我们都知道,.net core天生自带IOC容器,但是他的功能其实并不强大,而且有坑:在构造注入的时候,他默认找参数最少的构造函数。

这里,我讲解如何使用Autofac去接管IOC,至于为什么要选Autofac,这个其实我也是随大众,不过后面我讲到关于使用Autofac实现AOP的时候,或许你能发现他的好处

第一步,引包

 

 第二步,修改startup.cs文件

首先,在类的内部定义一个新的方法

 

1 public void ConfigureContainer(ContainerBuilder builder)
2 {
3     // 在这里添加服务注册
4     //builder.RegisterType<ProductRepository>    ().As<IProductRepository>();//注册 
5 }

在这个方法里,完成服务注册。对于服务注册这块,关于Autofac的API如果有需要更多的了解的话,可以查阅Autofac指南

 

第三步,修改Program.cs文件

.UseServiceProviderFactory(new AutofacServiceProviderFactory())//使用AutoFac做IOC和AOP

 

第四步,正式使用

对于使用IOC,虽然Autofac有多种骚姿势,但是我这里还是推荐使用构造注入,如果要问为什么,其实关键在于,你不用在每个类库中都去拉包,到处都拉包的话,项目就会对组件产生依赖,产生一定的耦合。

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/5115.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息