VB .NET to C# Error: 'As' is not a member of 'Task(Of IFlurlResponse)'

VB .NET to C# Error: 'As' is not a member of 'Task(Of IFlurlResponse)'

我正在转换此 C# 行

return await _serviceUrl.WithOAuthBearerToken(bearerToken)
                                

.AppendPathSegment($"api/v1/accounts/{accountId}/identities/{identityId}")
                                .AllowAnyHttpStatus()
                                .PatchJsonAsync(model)
                                .As<Models.IdentityModel>();

到 VB.Net 中的这一行

Return Await _serviceUrl.WithOAuthBearerToken(bearerToken).AppendPathSegment($"api/v1/accounts/{accountId}/identities/{identityId}").AllowAnyHttpStatus().PatchJsonAsync(model).[As](Of Identity)()

但是我遇到了这个错误

'As' is not a member of 'Task(Of IFlurlResponse)'.

我该如何解决?

提前致谢

直译为:

Return (Await _serviceUrl.WithOAuthBearerToken(bearerToken) _
  .AppendPathSegment($"api/v1/accounts/{accountId}/identities/{identityId}") _ 
  .AllowAnyHttpStatus() _ 
  .PatchJsonAsync(model) _
).As(Of Identity)()

但我刚刚推出了一个使用 Flurl 的项目,它似乎不包含 As 所以我猜这是对其他东西的一些扩展..

长话短说,当你有一个以 Async 结尾的方法名称和 returns 一个可等待的方法时,如果你想链接

Dim r = (Await(Await(Await x.AAsync()).BAsync()).CAsync()).D

简单地说,如果一个 MethodAsync() returns 一个 Task(Of X) 然后调用 Await MethodAsync() 给你 X,否则你调用任务的方法,而不是 X


脚注:

虽然在 [As] 中有必要使用方括号来定义一个名为 As 的方法,但没有必要让他们调用它