HttpClientFactory
クラスの目的は何なのか気になります。MSDN に存在する理由についての説明はありません (リンクを参照)。
Create
より特殊な引数を持つメソッドもありますが、ほとんどの場合、パラメーターなしの呼び出しと通常のコンストラクターの違いは何だろうと思います。
var httpClient = HttpClientFactory.Create();
VS
var httpClient = new HttpClient();
ほとんどの例では、クラスが から派生しているにもかかわらず、ステートメントnew HttpClient()
なしで が使用されています。using
HttpClient
IDisposable
HttpClient
クラスは から派生しているためIDisposable
、ファクトリによってプーリングまたはキャッシングが行われますか? パフォーマンス上の利点はありますか、それとも問題ではありませんか?
更新 – .NET Core 2.1 の <code>IHttpClientFactory
この質問がされてから、新しいバージョンの .NET がリリースされ、.NET Core 2.1 では HTTP クライアントを取得するための新しく大幅に改善されたアプローチが導入されたことに注意してください。
IHttpClientFactory
代わりに .NET Coreを使用する場合は、以下の Ali Bayat の回答を参照してください。
ただし、これは、この質問が求められた v4.8 までの .NET Framework での使用に対する正しい答えであるため、Darrel Miller の答えを受け入れられた答えとして保持しています。
.NET 5 では、.NET Framework と .NET Core の間の不一致が調整されるため、IHttpClientFactory
代わりに使用する必要があります。