|
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。
控制器代码:
运行项目,如下图:
控制器Autofac属性注入
修改Startup中的ConfigureServices方法,如下:
控制器代码:
运行项目,如下图:
注意要点:
- 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日志使用教程
|