O httpclient deve ser transiente ou singleton?

Índice:

O httpclient deve ser transiente ou singleton?
O httpclient deve ser transiente ou singleton?

Vídeo: O httpclient deve ser transiente ou singleton?

Vídeo: O httpclient deve ser transiente ou singleton?
Vídeo: Injeção de Dependência Singleton, Scoped e Transient Como utilizar a melhor estratégia com C# .Net 2024, Novembro
Anonim

A classe HttpClient é mais adequada como singleton para um único domínio de aplicativo. Isso significa que o singleton deve ser compartilhado em várias classes de contêiner. Com essa tática, você obtém um singleton, mas isso dificulta o compartilhamento. A classe HttpClient implementa a interface IDisposable.

Devemos criar uma nova instância única de HttpClient para todas as solicitações?

Embora implemente a interface IDisposable, na verdade é um objeto compartilhado. Isso significa que sob as tampas ele é reentrante e seguro para roscas. Em vez de criar uma nova instância de HttpClient para cada execução, você deve compartilhar uma única instância de HttpClient por toda a vida útil da aplicação.

Você deve reutilizar o

HttpClient é destinado a ser instanciado uma vez e reutilizado ao longo da vida de um aplicativo. A instanciação de uma classe HttpClient para cada solicitação esgotará o número de soquetes disponíveis sob cargas pesadas. Isso resultará em erros de SocketException.

HttpClient não é gerenciado?

Embora o HttpClient implemente indiretamente a interface IDisposable, o uso padrão do HttpClient não é descartá-lo após cada solicitação. O objeto HttpClient deve durar enquanto seu aplicativo precisar fazer solicitações

O HttpClient é thread-safe?

HttpClient é totalmente thread-safe quando usado com um gerenciador de conexões thread-safe como MultiThreadedHttpConnectionManager. … Ao mesmo tempo, a instância HttpClient e o gerenciador de conexões devem ser compartilhados entre todos os threads para máxima eficiência.

Recomendado: