Asp.Net Core实例化控制器传入IServiceProvider的问题
作者:互联网
介绍
因为业务需求,有时候需要直接对控制器进行实例化,但是如果控制器需要一个.Net自带的IOC容器(IServiceProvider)才能运行,如果修改控制器传入的参数可能就太麻烦了,还是需要传入一个容器。
实现
//实例化ServiceCollection
ServiceCollection collection = new ServiceCollection();
//添加IOC容器及其实现类,跟在Startup中添加方法相同
collection.AddTransient<IOC接口容器类, 实现类>();
//生成ServiceProvider
//ServiceProvider实现IServiceProvider接口
//该类没有构造函数不能直接被实例化
var provider = collection.BuildServiceProvider();
//将容器注入到Controller
HomeController controller = new HomeController(provider);
标签:Core,控制器,Asp,容器,ServiceCollection,collection,实例,IServiceProvider 来源: https://blog.csdn.net/qq_48520962/article/details/116537835