2

MVC アプリケーションと Web API を使用したソリューションがあります。それらは別々のプロジェクトとドメインにあります (CORS を使用)。コンシューマーを柔軟に追加できるように Web API として構築しましたが、現在、私の MVC アプリケーションが唯一のコンシューマーです。そのため、MVC コントローラー内で HttpClient を使用するか、ApiController を直接インスタンス化するかを検討しています。

どちらの場合も、依存性注入 (Autofac) を使用しているので、HttpClient にも ApiController にも、通常のようにコンストラクター パラメーターを介して注入できる種類のインターフェイスがないため、その構成方法も知りたいと思います。これを処理する方法がわからない。

注入されたインスタンスの有効期間スコープはどうあるべきですか? HttpClient は、各リクエストの後に破棄することが推奨されていないため、おそらくシングルトンにする必要があります。

: API を呼び出すと、グラフの作成に使用される大規模なデータセットが返されます。そのため、Http を使用すると追加のオーバーヘッドが発生すると思われるため、HttpClient から少し離れています。ApiController を直接インスタンス化するのはアンチパターンですか?

ありがとう

4

1 に答える 1

4

あなたはいつでもこれを行うことができます

var httpClient = new HttpClient(new HttpServer(GlobalConfiguration.Configuration));

これにより、引き続き HttpClient を使用できますが、ネットワーク リクエストを行うことなく、リクエストが WebApi サーバーに直接渡されます。このようにして、後で WebAPI を分離することにした場合でも、クライアント コードは変更されません。

于 2013-04-07T00:14:23.590 に答える