Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET 5中使用第三方IoC容器的优势是什么_C#_Asp.net_.net_Inversion Of Control_Asp.net Core - Fatal编程技术网

C# 在ASP.NET 5中使用第三方IoC容器的优势是什么

C# 在ASP.NET 5中使用第三方IoC容器的优势是什么,c#,asp.net,.net,inversion-of-control,asp.net-core,C#,Asp.net,.net,Inversion Of Control,Asp.net Core,IoC现在从头构建到ASP.NET5中。使用像Autofac或Unity这样的第三方IoC容器有什么好处 使用第三方IoC容器会带来更好还是更差的性能?是否有内置IoC容器没有的其他真正有用的功能 我再也看不到使用Autofac的好处了,但我想确保我没有遗漏任何东西。下面是一个基准列表:Autofac相对较轻,并且有很多功能。最终,除了性能之外,如果您的应用程序只需要内置一个,那么使用内置一个并没有任何优势。与使用内置测试套件vs nunit相同。这取决于您需要对它做什么,以及它是否支持该功能和

IoC现在从头构建到ASP.NET5中。使用像Autofac或Unity这样的第三方IoC容器有什么好处

使用第三方IoC容器会带来更好还是更差的性能?是否有内置IoC容器没有的其他真正有用的功能


我再也看不到使用Autofac的好处了,但我想确保我没有遗漏任何东西。

下面是一个基准列表:Autofac相对较轻,并且有很多功能。最终,除了性能之外,如果您的应用程序只需要内置一个,那么使用内置一个并没有任何优势。与使用内置测试套件vs nunit相同。这取决于您需要对它做什么,以及它是否支持该功能和/或关键性能

内置的IoC容器应该提供框架工作和支持依赖注入所需的最低限度

使用另一个容器的优点是,您可以访问内置容器属性注入中不可用的功能、命名依赖项、可配置依赖项等


此外,可能有一些性能优势,但您必须检查一下。

内置容器非常便宜。也就是说,这并不意味着像LightInject这样的东西不会更快,unity也不会慢很多。第三方解决方案的真正好处是功能,而不是性能,当然这在很大程度上取决于IoC容器本身。我在本次提问中学到的一点是,内置DI无法正确连接装饰器模式,这足以让我想使用其他类似autofac的东西,然而,目前的autofac似乎只与beta4兼容,因此在测试期间,我们的选择是有限的。我要说的是,在你需要一些它不能为你做的事情之前,内置的是好的。不一定,它也需要进行基准测试才能确定。一般来说,如果您不知道为什么除了内置的IoC容器之外还需要另一个IoC容器,那么您就不需要它了。只有在基于性能或功能需求而产生需求时,您才会切换到第三方库。