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

326
Vistas
HttpClient inyectar en Singleton

Digamos que tenemos un código como este:

 services.AddHttpClient(); services.AddSingleton<IMyService, MyService>(); ... public class MyService : IMyService { public MyService(HttpClient httpClient) { } }

Hay preguntas (probablemente estúpidas, pero solo quiero aclarar algunas cosas):

  1. ¿ HttpClientFactory para crear una instancia de HttpClient ?
  2. Supongo que usa HttpClientFactory , pero ¿tendrá problemas con los cambios de DNS en ese caso?

No está del todo claro si HttpMessageHandler s se administrará para servicios singleton y si el servicio debe tener un alcance de todos modos para obtener todos los beneficios del uso de HttpClientFactory .

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

0

  1. ¿ HttpClientFactory para crear una instancia de HttpClient ?

Si. Un HttpClient predeterminado se registra como un servicio transitorio durante el registro de HttpClientFactory .

  1. Supongo que usa HttpClientFactory , pero ¿tendrá problemas con los cambios de DNS en ese caso?

Correcto, todavía lo haría. A medida que lo inyecta en un singleton, HttpClient aquí se creará solo una vez. Para hacer uso de la agrupación HttpMessageHandler de HttpClientFactory , necesitará que sus HttpClient s sean de corta duración. Entonces, para esto, preferiría inyectar IHttpClientFactory y llamar a CreateClient cuando lo necesite. (Tenga en cuenta que los HttpClient de corta duración solo se aplican al uso de HttpClientFactory ). Por cierto, cambiar a un cliente escrito no ayudará cuando se inyecte en un singleton, HttpClient terminará siendo creado solo una vez, consulte https://github.com/dotnet/runtime/issues/64034 .

Además, puede evitar HttpClientFactory por completo y seguir respetando los cambios de DNS. Para eso, puede tener un HttpClient estático/singleton con PooledConnectionLifetime establecido en un tiempo de espera razonable (por ejemplo, los mismos 2 minutos que tiene HttpClientFactory )

 services.AddSingleton(() => new HttpClient( new SocketsHttpHandler { PooledConnectionLifetime = TimeSpan.FromMinutes(2) } ));
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