在我的ASP.NET Core 2.0项目中,我一直在使用Microsoft.Extensions.Hosting命名空间中的IHostingEnvironment和IApplicationLifetime.
在ASP.NET Core 2.1中,这些接口似乎同时位于Microsoft.AspNetCore.Hosting和Microsoft.Extensions.Hosting命名空间中.有什么区别,我应该使用哪个命名空间?
仅供参考,我也在使用BackgroundService类,它现在是Microsoft.Extensions.Hosting命名空间中的(Core 2.1).
Hen*_*ema 14
自ASP.NET Core 2.0以来,有两种托管模型:
Microsoft.AspNetCore.Hosting命名空间中.Microsoft.Extensions.Hosting命名空间中.两种不同模型之间存在一些重复的接口和其他类型.对于Web应用程序,你一般应在使用类型的Microsoft.AspNetCore.Hosting命名空间,除了为IHostedService,BackgroundService和其他相关类型.
仍然有一些工作要继续将通用托管模型的类型和逻辑移动,并改善两者之间的兼容性.例如,IHostingEnvironment并且IApplicationLifetime在网络托管模式可能会从相同的接口继承在将来的版本中通用的托管模式.
这篇文章也解释了一下,也解释了.NET Core 3中是什么情况: https://andrewlock.net/ihostingenvironment-vs-ihost-environment-obsolete-types-in-net-core-3/
基本上在 .NET Core 3 中,这两个接口都被标记为过时。
它们被替换如下:
好处:.NET Core 3 IHostEnvironment在所有应用程序中兼容。
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |