Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.6K
Vistas
Cómo leer los valores de AppSettings desde un archivo .json en ASP.NET Core

Configuré mis datos de AppSettings en el archivo appsettings/Config .json de esta manera:

 { "AppSettings": { "token": "1234" } }

He buscado en línea sobre cómo leer los valores de AppSettings del archivo .json, pero no pude obtener nada útil.

Lo intenté:

 var configuration = new Configuration(); var appSettings = configuration.Get("AppSettings"); // null var token = configuration.Get("token"); // null

Sé que con ASP.NET 4.0 puedes hacer esto:

 System.Configuration.ConfigurationManager.AppSettings["token"];

Pero, ¿cómo hago esto en ASP.NET Core?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Esto ha tenido algunos giros y vueltas. Modifiqué esta respuesta para que esté actualizada con ASP.NET Core 2.0 (a partir del 26/02/2018).

Esto se toma principalmente de la documentación oficial :

Para trabajar con configuraciones en su aplicación ASP.NET, se recomienda que solo cree una instancia de Configuration en la clase de Startup de su aplicación. Luego, use el patrón Opciones para acceder a configuraciones individuales. Digamos que tenemos un archivo appsettings.json que se ve así:

 { "MyConfig": { "ApplicationName": "MyApp", "Version": "1.0.0" } }

Y tenemos un objeto POCO que representa la configuración:

 public class MyConfig { public string ApplicationName { get; set; } public int Version { get; set; } }

Ahora construimos la configuración en Startup.cs :

 public class Startup { public IConfigurationRoot Configuration { get; set; } public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); Configuration = builder.Build(); } }

Tenga en cuenta que appsettings.json se registrará de forma predeterminada en .NET Core 2.0. También podemos registrar un archivo de configuración appsettings.{Environment}.json por entorno si es necesario.

Si queremos inyectar nuestra configuración a nuestros controladores, necesitaremos registrarla con el tiempo de ejecución. Lo hacemos a través de Startup.ConfigureServices :

 public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // Add functionality to inject IOptions<T> services.AddOptions(); // Add our Config object so it can be injected services.Configure<MyConfig>(Configuration.GetSection("MyConfig")); }

Y lo inyectamos así:

 public class HomeController : Controller { private readonly IOptions<MyConfig> config; public HomeController(IOptions<MyConfig> config) { this.config = config; } // GET: /<controller>/ public IActionResult Index() => View(config.Value); }

La clase de Startup completa:

 public class Startup { public IConfigurationRoot Configuration { get; set; } public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); Configuration = builder.Build(); } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // Add functionality to inject IOptions<T> services.AddOptions(); // Add our Config object so it can be injected services.Configure<MyConfig>(Configuration.GetSection("MyConfig")); } }
over 4 years ago · Santiago Trujillo Denunciar

0

En primer lugar: el nombre del ensamblado y el espacio de nombres de Microsoft.Framework.ConfigurationModel ha cambiado a Microsoft.Framework.Configuration. Así que deberías usar: por ejemplo

 "Microsoft.Framework.Configuration.Json": "1.0.0-beta7"

como una dependencia en project.json . Use beta5 o 6 si no tiene 7 instalado. Entonces puedes hacer algo como esto en Startup.cs .

 public IConfiguration Configuration { get; set; } public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) { var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath) .AddJsonFile("config.json") .AddEnvironmentVariables(); Configuration = configurationBuilder.Build(); }

Si luego desea recuperar una variable de config.json, puede obtenerla de inmediato usando:

 public void Configure(IApplicationBuilder app) { // Add .Value to get the token string var token = Configuration.GetSection("AppSettings:token"); app.Run(async (context) => { await context.Response.WriteAsync("This is a token with key (" + token.Key + ") " + token.Value); }); }

o puede crear una clase llamada AppSettings como esta:

 public class AppSettings { public string token { get; set; } }

y configurar los servicios de esta manera:

 public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.Configure<MvcOptions>(options => { //mvc options }); services.Configure<AppSettings>(Configuration.GetSection("AppSettings")); }

y luego acceda a él a través de, por ejemplo, un controlador como este:

 public class HomeController : Controller { private string _token; public HomeController(IOptions<AppSettings> settings) { _token = settings.Options.token; } }
over 4 years ago · Santiago Trujillo Denunciar

0

.NET Núcleo 3.0

¡Tal vez no sea la mejor manera de obtener un valor de appsettings.json , pero es simple y funciona en mi aplicación!

Archivo appsettings.json

 { "ConnectionStrings": { "DefaultConnection":****;" } "AppSettings": { "APP_Name": "MT_Service", "APP_Version": "1.0.0" } }

Controlador:

En la parte superior :

 using Microsoft.Extensions.Configuration;

En tu código:

 var AppName = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("AppSettings")["APP_Name"];
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda