微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);

原文地址:https://blog.csdn.net/qq_48520962/article/details/116537835

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐