Blazor에서 Autorest 클라이언트를 사용할 수 있습니까?

asp.net-core autorest blazor c# mono

문제

webassembly에서 blazor 앱을 실행하려고 할 때 모노 플랫폼에서 System.PlatformNotSupportedException 발생합니다. Autorest를 사용하여 웹 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/

(링크 플로레스 주셔서 감사합니다!)

HttpClient는 Autorest에서 사용하는 Microsoft.Rest.ServiceClient에서 보호 된 것으로 표시됩니다. 따라서 blazor에서 HttpClient를 삽입하려면 자동 생성 된 클라이언트 클래스의 새 부분을 만들고 SetHttpClient 메서드를 추가하면 SetHttpClient .

autorest에 의해 생성 된 클래스 :

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

새 부분 :

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

좋고 간단합니다!




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.