read net library iconfiguration from asp c# asp.net-core .net-core

c# - library - Cómo extraer una lista de appsettings.json en.net core



read appsettings.json from class library (2)

Puede usar el cuaderno de configuración para obtener una representación de tipo fuerte de las fuentes de configuración.

Este es un ejemplo de una prueba que escribí antes, espero que ayude:

[Fact] public void BindList() { var input = new Dictionary<string, string> { {"StringList:0", "val0"}, {"StringList:1", "val1"}, {"StringList:2", "val2"}, {"StringList:x", "valx"} }; var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(input); var config = configurationBuilder.Build(); var list = new List<string>(); config.GetSection("StringList").Bind(list); Assert.Equal(4, list.Count); Assert.Equal("val0", list[0]); Assert.Equal("val1", list[1]); Assert.Equal("val2", list[2]); Assert.Equal("valx", list[3]); }

La parte importante es la llamada a Bind .

La prueba y más ejemplos están en GitHub

Tengo un archivo appsettings.json que se ve así:

{ "someSetting": { "subSettings": [ "one", "two", "three" ] } }

Cuando construyo mi raíz de configuración, y hago algo como config["someSetting:subSettings"] , devuelve null y la configuración real disponible es algo como esto:

config["someSettings:subSettings:0"]

¿Hay una mejor manera de recuperar el contenido de someSettings:subSettings como una lista?


Suponiendo que su appsettings.json ve así:

{ "foo": { "bar": [ "1", "2", "3" ] } }

Puede extraer los elementos de la lista de esta manera:

Configuration.GetSection("foo:bar").Get<List<string>>()