問題タブ [refit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4942 参照

c# - 動的ベース アドレスを使用してクライアントを修復する

私は Refit を使用して、現在、構成オプションから単一の BaseAddress を使用してブートストラップされている asp.net コア 2.2 の Typed Client を使用して API を呼び出しています。

構成 json では、次のようになります。

IMyApi インターフェースでは:

現在のサービスの例:

実行時のデータに基づいて、異なる BaseAddresses を使用する必要があります。私の理解では、Refit は HttpClient の単一のインスタンスを DI に追加するため、実行時に BaseAddresses を切り替えても、マルチスレッド アプリでは直接機能しません。今のところ、IMyApi のインスタンスを挿入してインターフェイス メソッド GetQuestionsAsync を呼び出すのは非常に簡単です。その時点で BaseAddress を設定するには遅すぎます。複数の BaseAddresses がある場合、1 つを動的に選択する簡単な方法はありますか?

構成例:

将来のサービスの例:

更新 受け入れられた回答に基づいて、次のようになりました。