Asp.net mvc net 4.7中的依赖注入?

Asp.net mvc net 4.7中的依赖注入?,asp.net-mvc,dependency-injection,Asp.net Mvc,Dependency Injection,对于DI的集成选项,我有点困惑。我认为这对于.NETCore(对于我的特定项目)来说非常简单,但我不需要构建跨平台的应用程序,也不认为使用core有什么好处。但是,看起来.net framework应用程序并不是仍然使用Global.asax安装,并且没有Startup.cs,那么这是否意味着.net framework 4.7没有集成的DI选项?我是否仍然需要获得第三方解决方案,或者是否有办法在.net framework项目中使用与核心项目相同的DI工作流?在经典asp.net中,依赖项注入

对于DI的集成选项,我有点困惑。我认为这对于.NETCore(对于我的特定项目)来说非常简单,但我不需要构建跨平台的应用程序,也不认为使用core有什么好处。但是,看起来.net framework应用程序并不是仍然使用Global.asax安装,并且没有Startup.cs,那么这是否意味着.net framework 4.7没有集成的DI选项?我是否仍然需要获得第三方解决方案,或者是否有办法在.net framework项目中使用与核心项目相同的DI工作流?

在经典asp.net中,依赖项注入默认情况下不集成,您需要添加nuget包来处理DI(默认情况下仅集成在asp.net核心中).

编辑:尽管我找到了下面解释的方法,但我还是选择了Autofac,因为我没有意识到Microsoft的解决方案只支持构造函数注入,而不支持属性注入

我在这里找到了操作说明。我知道链接答案很糟糕,但我没有时间做更多的事情。如果有人想给出一个有完整说明的答案,我会做标记


还请注意,如果您尚未使用Owin,则不需要它。您可以在
Global.asax的
Application\u Start
方法中进行相同的设置。您需要做的唯一更改是,当它在反射式获取所有控制器类的语句中引用
Startup
类时,您需要将该类更改为代码所在的类(或程序集中的任何其他类)。

DI仅是dotnet core中的一级公民,您唯一的选择是一个框架,如Autofac或Ninject@saj好的,谢谢。那太糟糕了:/那不是真的。在ASP.NET Core 2.2之前,你可以拥有完整的.NET Framework ASP.NET Core应用程序。你看不到.NET Core的优势吗?即使你对跨平台不感兴趣,除了VS,还有改进的csproj和使用IDE的能力,以及随应用程序一起发布框架的能力(支持并行部署、更好的性能、更多的命令行选项、更好的容器支持等。如果您正在开始新的开发,您绝对应该使用.NET Core而不是.NET Framework..NET Core/Standard应该是默认选择,并且只有在有特定原因时才应该使用.NET Framework。@maso哈哈,我理解你为什么这么解读我的评论,但我绝对不是那个意思。是的,当然我完全得到了.net core的好处,我觉得它真的很酷。我真正的意思是,我不相信将现有项目转换为.net core会有任何显著的优势来证明工作投入的合理性已解决。抱歉混淆。不要恨我。:)找不到页面:-(@Mike抱歉。你考虑过Autofac吗?回想起来,我还是宁愿使用它…而且它很容易开始使用。我也使用过Ninject和Castle,在这三个选项之间,我肯定更喜欢Autofac。谢谢,我会研究它。