IOC容器IServiceCollection
.net 5已经内置了IOC容器。
什么是IOC?
把对象的创建交给第三方容器去创建
如何使用内置的 IOC IServiceCollection ?
第一种:
1. 在Startup中的ConfigureServices方法中注册服务
services.AddTransient<ITestServiceA,TestServicesA>();
2.在控制器中,通过构造函数,定义服务的抽象类型,作为参数,在运行时,自动得到服务的具体
3. 调佣服务内部方法
第二种:
构造函数中,使用 IServiceProvider ,通过它来得到一个服务的抽象IServiceA
第三种
注册服务后, 在视图中通过关键字@inject 获取实例
@inject ITestviceA iTestServiceA --- 获取到服务实例
@{
iTestServiceA.Show();
}