Rok*_*Rok 5 c# configuration c#-record-type
我想将配置绑定到记录类型。
这是配置类型的定义(它没有无参数构造函数):
public record AppConfiguration(string ConnectionString);
Run Code Online (Sandbox Code Playgroud)
这是示例Main方法:
public static void Main(string[] args)
{
var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
AppConfiguration appConfig = new(); // error
configuration.GetSection("app").Bind(appConfig);
}
Run Code Online (Sandbox Code Playgroud)
如果我将定义转换为:
public record AppConfiguration
{
public string ConnectionString {get; init;}
}
Run Code Online (Sandbox Code Playgroud)
它按预期工作,但我宁愿使用记录的“单行”定义。这个用例的记录是正确的吗?
record将配置节绑定到s的能力已成为 .NET 团队的一个问题,并已针对 .NET 7+ 实施,因此一旦升级到该版本,这将正常工作\xc2\xad\xc2\xad\xe2\x84 \xa2:
var appConfig = config.GetSection("app").Get<AppConfiguration>();\nRun Code Online (Sandbox Code Playgroud)\nMicrosoft.Extensions.Configuration.Binder从版本 7.0.0 及更高版本开始,它也已添加到NuGet 包中。
或者,您可以使用 Paul Hiles 的 NuGet 包(他的答案中的链接)。
\n| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |