【发布时间】:2017-03-16 19:26:53
【问题描述】:
我正在将一个 ASP.NET 5 RC1 项目迁移到 ASP.NET Core,并且遇到了一个我尚未看到或找到解决方案的有趣问题。
为了在 Startup 中使用配置设置,我之前通过以下方式检索了配置
// Works fine for DI both in ASP.NET 5 RC1 and ASP.NET Core
services.Configure<SomeConfigurationClass>(Configuration.GetSection("SomeConfigurationSection"));
// How I previous retrieved the configuration for use in startup.
// No longer available in ASP.NET Core
var someConfigurationToUseLater = Configuration.Get<SomeConfigurationClass>("SomeConfigurationSection");
更新到 ASP.NET Core 1.0 后,似乎 Configuration.Get
我已尝试更新代码以使用 Configuration.GetValue
var someConfigurationName = "someConfiguration";
var someConfigurationClass = new SomeConfigurationClass()
{
Value1 = Configuration.GetValue<string>($"{someConfigurationName}:value1"),
Foo = Configuration.GetValue<string>($"{someConfigurationName}:foo"),
Bar = Configuration.GetValue<string>($"{someConfigurationName}:bar")
};
但是,当配置类包含对象数组时,这是一个问题。在我的例子中,一组 Client 对象
public class ClientConfiguration
{
public Client[] Clients { get; set; }
}
使用以下配置
"configuredClients": {
"clients": [
{
"clientName": "Client1",
"clientId": "Client1"
},
{
"clientName": "Client2",
"clientId": "Client2"
}
]
}
以前这会绑定到我的配置类的 Clients 属性没有问题,但我在 ASP.NET Core 1.0 中找不到这样做的方法
【问题讨论】:
标签: c# asp.net-core asp.net-core-1.0