Microsoft 的“....抽象”Nuget 包的想法是什么?
What's the idea of Microsoft's "....Abstractions" Nuget packages?
有人可以解释提供...抽象包背后的总体思路吗?
例如,当我在 VS NuGet 包管理器中搜索“托管”一词时,结果列表中有:
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Hosting.抽象
- Microsoft.AspNetCore.Hosting.Server.Abstraction
- Microsoft.AspNetCore.Hosting.Abstractions
- Microsoft.AspNetCore.Hosting
- Microsoft.Extensions.Hosting.Windows 服务
这些都有关系吗?有些似乎依赖于平台(AspNetCore),而另一些则不是?是否有一般规则告诉我何时选择哪个?
假设我想在 .NET5 class 库中实现 BackgroundService,我应该安装哪些 NuGet? (似乎 Microsoft.Extensions.Hosting.Abstractions 对我来说效果很好,但我不得不尝试一下。)
谢谢
我们的想法是您提供的库或包将只引用抽象包以便于兼容。
例如如果您发送一个 company-wide NuGet 包,其中包含一些业务逻辑或自定义客户端,您可能希望使用 ILogger
/ ILogger<T>
进行日志记录,但实际上不依赖于任何日志记录实现( built-in 记录器或 Serilog 等),因此您可以引用这些接口的日志记录抽象。
有人可以解释提供...抽象包背后的总体思路吗?
例如,当我在 VS NuGet 包管理器中搜索“托管”一词时,结果列表中有:
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Hosting.抽象
- Microsoft.AspNetCore.Hosting.Server.Abstraction
- Microsoft.AspNetCore.Hosting.Abstractions
- Microsoft.AspNetCore.Hosting
- Microsoft.Extensions.Hosting.Windows 服务
这些都有关系吗?有些似乎依赖于平台(AspNetCore),而另一些则不是?是否有一般规则告诉我何时选择哪个?
假设我想在 .NET5 class 库中实现 BackgroundService,我应该安装哪些 NuGet? (似乎 Microsoft.Extensions.Hosting.Abstractions 对我来说效果很好,但我不得不尝试一下。)
谢谢
我们的想法是您提供的库或包将只引用抽象包以便于兼容。
例如如果您发送一个 company-wide NuGet 包,其中包含一些业务逻辑或自定义客户端,您可能希望使用 ILogger
/ ILogger<T>
进行日志记录,但实际上不依赖于任何日志记录实现( built-in 记录器或 Serilog 等),因此您可以引用这些接口的日志记录抽象。