En appsettings.json
{
"MyArray": [
"str1",
"str2",
"str3"
]
}
En Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}
En HomeController
public class HomeController : Controller
{
private readonly IConfiguration _config;
public HomeController(IConfiguration config)
{
this._config = config;
}
public IActionResult Index()
{
return Json(_config.GetSection("MyArray"));
}
}
Hay mis códigos arriba, obtuve un valor nulo ¿Cómo obtener la matriz?
"Clients": [ {..}, {..} ]
, debe invocarConfiguration.GetSection("Clients").GetChildren()
."Clients": [ "", "", "" ]
, debe invocar.GetSection("Clients").GetChildren().ToArray().Select(c => c.Value).ToArray()
.var clients = Configuration.GetSection("Clients").GetChildren() .Select(clientConfig => new Client { ClientId = clientConfig["ClientId"], ClientName = clientConfig["ClientName"], ... }) .ToArray();
Puede instalar los siguientes dos paquetes NuGet:
Y luego tendrá la posibilidad de utilizar el siguiente método de extensión:
fuente
_config.GetSection("AppUser").Get<AppUser[]>();
Agregue un nivel en su appsettings.json:
Crea una clase que represente tu sección:
En la clase de inicio de su aplicación, vincule su modelo e inyéctelo en el servicio DI:
Y en su controlador, obtenga sus datos de configuración del servicio DI:
También puede almacenar su modelo de configuración completo en una propiedad en su controlador, si necesita todos los datos:
El servicio de inyección de dependencias de ASP.NET Core funciona de maravilla :)
fuente
MySettings
en el inicio?Si tiene una matriz de objetos JSON complejos como este:
Puede recuperar la configuración de esta manera:
fuente
Esto funcionó para mí para devolver una serie de cadenas de mi configuración:
Mi sección de configuración se ve así:
fuente
Para el caso de devolver una matriz de objetos JSON complejos desde la configuración, he adaptado la respuesta de @ djangojazz para usar tipos anónimos y dinámicos en lugar de tuplas.
Dada una sección de configuración de:
Puede devolver la matriz de objetos de esta manera:
fuente
Es una pregunta antigua, pero puedo dar una respuesta actualizada para .NET Core 2.1 con los estándares C # 7. Digamos que tengo una lista solo en appsettings.Development.json como:
Puedo extraerlos en cualquier lugar donde Microsoft.Extensions.Configuration.IConfiguration esté implementado y conectado de la siguiente manera:
Ahora tengo una lista de un objeto bien escrito que está bien escrito. Si voy a testUsers.First (), Visual Studio debería mostrar ahora las opciones para 'Nombre de usuario', 'Correo electrónico' y 'Contraseña'.
fuente
En ASP.NET Core 2.2 y versiones posteriores, podemos inyectar IConfiguration en cualquier lugar de nuestra aplicación, como en su caso, puede inyectar IConfiguration en HomeController y usarlo de esta manera para obtener la matriz.
fuente
Puede obtener la matriz directa sin incrementar un nuevo nivel en la configuración:
fuente
Forma corta:
Devuelve una matriz de cadena:
fuente
Esto funcionó para mí; Crea un archivo json:
Luego, defina alguna clase que asigne:
paquetes nuget:
Luego, cárguelo:
fuente