在我的ASP.NET Core2.0项目中,我一直在使用来自Microsoft.Extensions.Hosting命名空间的IHostingEnvironment和IApplicationLifetime。
在ASP.NET Core2.1中,这些接口似乎都位于Microsoft.AspNetCore.Hosting和Microsoft.Extensions.Hosting名称空间中。有什么不同,我应该使用哪个名称空间?
FYI,我还使用了BackgroundService类,它现在(Core2.1)在Microsoft.Extensions.Hosting命名空间中。
发布于 2018-06-14 06:26:47
自从ASP.NET Core2.0以来,就有了两种托管模式
Microsoft.AspNetCore.Hosting命名空间中。Microsoft.Extensions.Hosting命名空间中。这两种不同的模型之间存在一些接口和其他类型的重复。对于web应用程序,通常应该使用Microsoft.AspNetCore.Hosting命名空间中的类型,但IHostedService、BackgroundService和其他相关类型的除外。
仍有许多工作在继续,以将同样多的类型和逻辑转移到通用托管模型,并提高两者之间的兼容性。例如,web托管模型中的IHostingEnvironment和IApplicationLifetime在将来的发行版中可能会在通用托管模型中使用从相同的接口继承。
发布于 2020-08-28 15:50:10
本文还解释了它,并解释了.NET核心3:https://andrewlock.net/ihostingenvironment-vs-ihost-environment-obsolete-types-in-net-core-3/中的情况
基本上,在.NET核心3中,两个接口都被标记为过时。
它们被替换成这样:
好处是:在IHostEnvironment内核3中,所有应用程序都兼容.NET。
https://stackoverflow.com/questions/50847635
复制相似问题