小编Aar*_*ord的帖子

启动时的ASP.NET核心配置部分

我正在将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");
Run Code Online (Sandbox Code Playgroud)

更新到ASP.NET Core 1.0后,似乎Configuration.Get <T>()不再可用.

我已经尝试更新代码以使用Configuration.GetValue <T>()但是这似乎不适用于对象,并且仅在提供值的路径时才起作用.这为我的大多数配置类留下了一个解决方法,就像这样

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")
};
Run Code Online (Sandbox Code Playgroud)

但是,当配置类包含对象数组时,这是一个问题.在我的例子中是一个Client对象数组

public class ClientConfiguration
{
    public Client[] Clients { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core asp.net-core-1.0

46
推荐指数
2
解决办法
2万
查看次数

标签 统计

asp.net-core ×1

asp.net-core-1.0 ×1

c# ×1