【发布时间】:2023-03-07 11:53:01
【问题描述】:
我的大部分项目都使用 .NET Core 3.1,但目前有一个使用 .NET Framework 4.6.1 的现有项目
我在实现对 .NET Framework 4.6.1 的依赖注入时遇到困难,不知道我哪里做错了。
这是我到目前为止所理解和所做的:
- .NET Framework 4.6.1 在运行时运行 Global.asax.cs -> Application_Start()
- .NET Core 3.1 在运行时运行 Startup.cs
这是在 .NET Core 3.1 中添加依赖注入的方式
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
RegisterServices(services);
ServiceProvider = services.BuildServiceProvider();
}
private void RegisterServices(IServiceCollection services)
{
services.AddOptions();
services.AddTransient<IMemberServices, MemberService>();
}
如何在 .NET Framework 4.6.1 中使用 MemberService 添加 IMemberServices 的依赖项
Global.asax.cs
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//What to write here?
}
}
【问题讨论】:
-
您可以使用 StructureMap 或 AutoFac 或任何其他容器。
-
Net 4.7.2 + 原生支持依赖注入。我强烈建议首先更新到这个版本
-
在 4.7.2 之前的任何版本的 Net 中使用核心都存在错误。 Net 4.7.2 修复了所有错误,使 Core 和 Net 兼容。
-
@Serge @jdweng 升级到 .NET Framework 4.7.2 后我该怎么做?我尝试使用 .NET Framework 4.7.2 打开一个新项目,但还是做不到。
-
这能回答你的问题吗? Dependency Injection in .net 4.7?
标签: c# asp.net-core .net-core dependency-injection .net-framework-version