DevTrends.ConfigurationExtensions 1.2.1
dotnet add package DevTrends.ConfigurationExtensions --version 1.2.1
NuGet\Install-Package DevTrends.ConfigurationExtensions -Version 1.2.1
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="DevTrends.ConfigurationExtensions" Version="1.2.1" />
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用此软件包。
paket add DevTrends.ConfigurationExtensions --version 1.2.1
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获得支持。
#r "nuget: DevTrends.ConfigurationExtensions, 1.2.1"
#r 指令可用于 F# Interactive 和多语言笔记本。请将此内容复制到交互式工具或脚本的源代码中以引用该软件包。
// Install DevTrends.ConfigurationExtensions as a Cake Addin #addin nuget:?package=DevTrends.ConfigurationExtensions&version=1.2.1 // Install DevTrends.ConfigurationExtensions as a Cake Tool #tool nuget:?package=DevTrends.ConfigurationExtensions&version=1.2.1
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获得支持。
DevTrends.ConfigurationExtensions
此软件包提供了一些扩展方法,允许您将配置绑定到带有参数化(非无参数)构造函数的记录和类。
它与可空类型和可空引用类型(NRTs)配合得很好,并有助于您避免一些讨厌的“可能的空引用”警告。
此软件包遵循“快速失败”原则,任何缺失的非空配置值都将在启动时引发异常。
请注意,此软件包扩展了内置配置,因此它将收集来自 appsettings、环境变量等所有常用来源的设置。
安装
dotnet add package DevTrends.ConfigurationExtensions
用法
对于某个记录
public record Foo(string Bar, int Blah)
如果您的 appsettings 中有以下内容
"Foo": {
"Bar": "hello",
"Blah": 42
}
您可以使用以下方式将记录绑定到设置
builder.Configuration.Bind<Foo>()
您还需要将以下命名空间添加到 program.cs 中
using DevTrends.ConfigurationExtensions;
依赖注入
您可能想将强类型配置类注册到 DI 容器中,所以您可以使用以下方式代替上面的方式
builder.Services.AddSingleton(builder.Configuration.Bind<Foo>());
支持什么?
您可以绑定到以下类型的属性(包括包含可空引用类型的可空版本,如 string?)
- string
- int
- bool
- decimal
- datetime
- uri
- 嵌套类
您的类或记录必须有一个公共构造函数来设置希望自动填充的所有属性。
如果您有任何可选配置值,请确保使用可空类型。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET | net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
-
net6.0
- Microsoft.Extensions.Configuration (>= 6.0.0)
NuGet 包
本包未由任何 NuGet 包使用。
GitHub 存储库
本包未由任何受欢迎的 GitHub 存储库使用。