架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2738|回复: 0

[.NET Core] ASP.NET Core使用Autofac两种方式实现IOC注入

[复制链接]
发表于 2019-5-7 16:32:23 | 显示全部楼层
ASP.NET Core依赖注入使用自带的IOC容器
https://www.itsvse.com/thread-7562-1-1.html
(出处: 架构师_程序员)

ASP.NET Core使用Autofac实现IOC注入
https://www.itsvse.com/thread-7563-1-1.html
(出处: 架构师_程序员)

ASP.NET Core使用Autofac实现AOP拦截
https://www.itsvse.com/thread-7566-1-1.html
(出处: 架构师_程序员)

ASP.NET Core中自带的IOC容器是属于轻量级的,功能并不是很多,只是提供了基础功能而已。

本文将使用Autofac通过构造函数和属性注入两种方式讲解。

Autofac 是一款适用于Microsoft .NET 4.5, Silverlight 5, Windows Store apps, and Windows Phone 8 apps的超赞的 IoC 容器 . 它可以管理类之间的依赖关系从而使 应用在规模及复杂性增长的情况下依然可以轻易地修改 . 通过将常规.net类当做 组件 处理实现 .

项目.net core版本为:2.1.301

安装Autofac.Extensions.DependencyInjection

通过nuget来安装,命令如下:



我们随便写了3个接口和3个实现类,如下:



控制器构造函数注入

首先,我们修改Startup中的ConfigureServices代码如下:

注意:这里把ConfigureServices返回值void修改成了IServiceProvider。

控制器代码:

运行项目,如下图:

QQ截图20190507162357.jpg

控制器Autofac属性注入

修改Startup中的ConfigureServices方法,如下:

控制器代码:

运行项目,如下图:

QQ截图20190507162824.jpg

注意要点:

  • services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddControllersAsServices();
  • public ITestService1 _testService1 { get; set; }


由于,我一开始把服务接口设置private私有的了,造成注入总是null。

参考资料:https://docs.autofac.org/en/latest/integration/aspnetcore.html




上一篇:ASP.NET Core依赖注入使用自带的IOC容器
下一篇:ASP.NET Core ILogger日志使用教程
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-7-8 21:22

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表