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

289
Vistas
¿Cómo agregar un proveedor en startup.cs sin sobrescribir todos los proveedores preexistentes?

Vi código para agregar un proveedor (digamos que el método de extensión para agregar este proveedor se llama AddXXX) en startup.cs:

 public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() // have to do tedious setup which can be done by program.cs .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddEnvironmentVariables(); if (env.IsDevelopment()) { builder.AddXXX(); } Configuration = builder.Build(); ... // setup other middlewares }

Pero teniendo en cuenta que ya hemos usado un hostbuilder predeterminado en program.cs:

 public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }

No quiero volver a configurar ConfigurationBuilder, lo cual es bastante tedioso, por ejemplo, agregar el proveedor de archivos json que CreateDefaultBuilder ya agregó, por lo que creo que la forma más eficiente es agregar el proveedor en program.cs como:

 public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => { if (hostingContext.HostingEnvironment.IsDevelopment()) { config.AddXXX(); } }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }

¿Es correcto mi pensamiento?

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

0

desde aquí

... los siguientes tipos de servicios se pueden inyectar en el constructor de inicio cuando se usa el host genérico (IHostBuilder):

  • IWebHostEnvironment
  • IHostEnvironment
  • IConfiguración

Entonces, lo que puedes hacer es;

 public class Startup { private readonly IWebHostEnvironment _env; private readonly IConfiguration _config; public Startup(IConfiguration configuration, IWebHostEnvironment env) { _config = configuration; _env = env; } ... }

Con la configuración específica del entorno definida en su método CreateHostBuilder , como en su pregunta.

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