Sección de configuración de ASP.NET Core en el inicio
Estoy migrando un proyecto ASP.NET 5 RC1 a ASP.NET Core, y he encontrado un problema interesante que aún no he visto o no he encontrado una solución.
Para usar los ajustes de configuración dentro de Inicio, previamente recuperé la configuración de la siguiente manera
// 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");
Después de actualizar a ASP.NET Core 1.0 parece que Configuration.Get <T> () ya no está disponible.
Intenté actualizar el código para usar Configuration.GetValue <T> (), sin embargo, esto no parece funcionar con objetos y solo funcionará al proporcionar una ruta a un valor. Esto me ha dejado una solución alternativa paramás de mis clases de configuración así
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")
};
Sin embargo, este es un problema cuando la clase de configuración contiene una matriz de objetos. En mi caso, una matriz de objetos de cliente
public class ClientConfiguration
{
public Client[] Clients { get; set; }
}
Con la siguiente configuración
"configuredClients": {
"clients": [
{
"clientName": "Client1",
"clientId": "Client1"
},
{
"clientName": "Client2",
"clientId": "Client2"
}
]
}
Donde esto se uniría previamente a la propiedad Clientes de mi clase de configuración sin problema, ya no puedo encontrar una manera de hacerlo en ASP.NET Core 1.0