blazorでAutorestクライアントを使用することはできますか

asp.net-core autorest blazor c# mono

質問

私は取得していますSystem.PlatformNotSupportedException webassemblyに私blazorアプリを実行しようとすると、モノプラットフォームから。 Autorestを使ってWeb APIクライアントを自動生成しました。すべてがうまくコンパイルされていますが、ブラウザにコードをロードすると、ブラウザのコンソールに次のエラーが表示されます。

VS2017のプレビュービルドを使用します。

module.printErr @ MonoPlatform.ts:192
WASM: [System.PlatformNotSupportedException] Operation is not supported on this platform.
WASM:   at System.Net.WebProxy.CreateDefaultProxy () <0x204ed08 + 0x00004> in <1c80af700ca2462a80a92d89ad803d6a>:0 
WASM:   at System.Net.Configuration.DefaultProxySectionInternal.GetSystemWebProxy () <0x204ebc0 + 0x00000> in <1c80af700ca2462a80a92d89ad803d6a>:0 
WASM:   at System.Net.Configuration.DefaultProxySectionInternal.GetDefaultProxy_UsingOldMonoCode () <0x204ea80 + 0x00000> in <1c80af700ca2462a80a92d89ad803d6a>:0 
WASM:   at System.Net.Configuration.DefaultProxySectionInternal.GetSection () <0x204e8c8 + 0x00022> in <1c80af700ca2462a80a92d89ad803d6a>:0 
WASM:   at System.Net.WebRequest.get_InternalDefaultWebProxy () <0x204e610 + 0x0002c> in <1c80af700ca2462a80a92d89ad803d6a>:0 
WASM:   at System.Net.HttpWebRequest..ctor (System.Uri uri) <0x2043eb0 + 0x000d2> in <1c80af700ca2462a80a92d89ad803d6a>:0 
WASM:   at System.Net.Http.HttpClientHandler.CreateWebRequest (System.Net.Http.HttpRequestMessage request) <0x20434d0 + 0x00016> in <3a9393eaef104ec489024eb855a8f163>:0 
WASM:   at System.Net.Http.HttpClientHandler+<SendAsync>d__64.MoveNext () <0x203ea60 + 0x00076> in <3a9393eaef104ec489024eb855a8f163>:0 
WASM: --- End of stack trace from previous location where exception was thrown ---
...

人気のある回答

はい、可能です。しかし、Blazorフレームワークによって注入されたHttpClientをここで説明するように使用する必要があります。

https://learn-blazor.com/architecture/rest-api/

Floresリンクありがとう!)

HttpClientは、Autorestによって使用されるMicrosoft.Rest.ServiceClientでprotectedとしてマークされます。したがって、BlazorからHttpClientを注入するには、自動生成されたクライアントクラスの新しい部分を作成し、 SetHttpClientメソッドを追加することができます。

autorestによって生成されたクラス:

public partial class YourApi : ServiceClient<YourApi>, IYourApi
{
    ...
}

あなたの新しい部分:

public partial class YourApi
{
    public void SetHttpClient(HttpClient client) {
        this.HttpClient = client;
    }
}

ニースとシンプル!




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ