gpt4 book ai didi

asp.net-core - 命名空间 .AspNetCore.Hosting 与 .Extensions.Hosting

转载 作者:行者123 更新时间:2023-12-03 02:58:24 28 4
gpt4 key购买 nike

在我的 ASP.NET Core 2.0 项目中,我一直在使用 Microsoft.Extensions.Hosting 命名空间中的 IHostingEnvironment 和 IApplicationLifetime。

在 ASP.NET Core 2.1 中,这些接口(interface)似乎位于 Microsoft.AspNetCore.Hosting 和 Microsoft.Extensions.Hosting 命名空间中。有什么区别以及我应该使用哪个命名空间?

仅供引用,我还使用了BackgroundService 类,该类现在(Core 2.1)位于Microsoft.Extensions.Hosting 命名空间中。

最佳答案

自 ASP.NET Core 2.0 起,有 two hosting models :

  • 我们一直使用的 ASP.NET Core Web 托管模型:它位于 Microsoft.AspNetCore.Hosting 命名空间中。
  • 一种新的通用托管模型,用于支持其他应用程序(例如控制台应用程序和 Windows 服务)中的基础架构和横切关注点:它位于 Microsoft.Extensions.Hosting 中 命名空间。

两个不同模型之间存在一些接口(interface)和其他类型的重复。对于 Web 应用程序,您通常应该使用 Microsoft.AspNetCore.Hosting 命名空间中的类型除了 IHostedServiceBackgroundService 和其他相关类型。

仍有工作正在进行,以将尽可能多的类型和逻辑转移到通用托管模型并提高两者之间的兼容性。例如,Web 托管模型中的 IHostingEnvironmentIApplicationLifetime 可能 inherit from the same interfaces在未来版本中的通用托管模型中。

关于asp.net-core - 命名空间 .AspNetCore.Hosting 与 .Extensions.Hosting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50847635/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com