首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >名称空间.AspNetCore.Hosting与.Extensions.Hosting

名称空间.AspNetCore.Hosting与.Extensions.Hosting
EN

Stack Overflow用户
提问于 2018-06-13 23:23:42
回答 2查看 4.2K关注 0票数 20

在我的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命名空间中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-14 06:26:47

自从ASP.NET Core2.0以来,就有了两种托管模式

  • 我们一直使用的ASP.NET核心web托管模型:它存在于Microsoft.AspNetCore.Hosting命名空间中。
  • 一种新的通用托管模型,用于支持其他应用程序(如控制台应用程序和Windows )中的基础设施和交叉关注点:它位于Microsoft.Extensions.Hosting命名空间中。

这两种不同的模型之间存在一些接口和其他类型的重复。对于web应用程序,通常应该使用Microsoft.AspNetCore.Hosting命名空间中的类型,但IHostedServiceBackgroundService和其他相关类型的除外。

仍有许多工作在继续,以将同样多的类型和逻辑转移到通用托管模型,并提高两者之间的兼容性。例如,web托管模型中的IHostingEnvironmentIApplicationLifetime在将来的发行版中可能会在通用托管模型中使用从相同的接口继承

票数 20
EN

Stack Overflow用户

发布于 2020-08-28 15:50:10

本文还解释了它,并解释了.NET核心3:https://andrewlock.net/ihostingenvironment-vs-ihost-environment-obsolete-types-in-net-core-3/中的情况

基本上,在.NET核心3中,两个接口都被标记为过时。

它们被替换成这样:

  • Microsoft.Extensions.Hosting.IHostingEnvironment (.NET Core 2.x) 使用Microsoft.Extensions.Hosting.IHostEnvironment (.NET Core 3.x)
  • Microsoft.AspNetCore.Hosting.IHostingEnvironment (.NET Core 2.x) 使用Microsoft.AspNetCore.Hosting.IWebHostEnvironment (.NET Core 3.x),它现在继承自IHostEnvironment

好处是:在IHostEnvironment内核3中,所有应用程序都兼容.NET。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50847635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档