ASP.NET Core Controller与IOC结合问题整理
前言看到标题可能大家会有所疑问Controller和IOC能有啥羁绊,但是我还是拒绝当一个标题党的。验证Controller不在IOC中首先,我们可以尝试在ServiceProvider中获取某个Controller实例,比如这是最直接的方式,可以在IOC容器中获取注册过的类型实例,很显然结果会为null。原因就是因为ProductController并不在IOC容器中,所以通过注入的方式会报错。利用这个特征,我们可以在Controller中验证一下我们在Controller中编写了两个构造函数,理论上来说这是符合DI特征的,运行起来测试一下,依然会报错InvalidOperationException: Multiple constructors accepting all given argument types have been found in type 'OrderController'. There should only be one applicable constructor。以上种种都是为了证实一个结论,默认情况下Controller并不会托管到IOC当中。
用户评论