Antes de 106.10.1, o código a seguir retorna um Task<IRestResponse>
Client.ExecuteTaskAsync(request);
Agora que 106.10.1 marcou ExecuteTaskAsync como obsoleto, espera-se que o código a seguir também retorne Task<IRestResponse>
Client.ExecuteAsync(request);
Em vez disso, o código a seguir produz um erro de compilação:
Client.ExecuteAsync(request);
Erro CS0411 Os argumentos de tipo para o método ' IRestClient.ExecuteAsync<T>(IRestRequest, CancellationToken)
' não podem ser inferidos do uso. Tente especificar os argumentos de tipo explicitamente.
Eu descobri que o código a seguir compila e retorna Task<IRestResponse>
Client.ExecuteAsync(request, request.Method);
Ontem eu mudei todos os testes para usar ExecuteAsync onde ExecuteTaskAsync foi usado anteriormente. Não houve problemas com a compilação do código.
Você pode fornecer mais código?
Pode confirmar. Costumava haver uma definição de interface
IRestClient.ExecuteTaskAsync(IRestRequest)
, mas na v106.10.1 isso foi marcado como obsoleto por IRestClient.ExecuteAsync
.
No entanto, não há substituição direta para o método de interface IRestClient.ExecuteTaskAsync(IRestRequest)
. O mais próximo é IRestClient.ExecuteTaskAsync(IRestRequest, Method)
as stricq menciona, onde você também deve especificar o método HTTP.
Isso não é grande coisa, mas se o método já faz parte da solicitação, certamente faz sentido ter uma definição de interface que o leia a partir da solicitação? Especialmente porque foi definido dessa forma no método agora obsoleto 😃
Eu encontrei o problema. A sobrecarga não genérica ExecuteAsync
que retorna IRestRequest
não faz parte da interface, mas está disponível em RestClient
. Já consertei localmente.
Alguma estimativa para o próximo lançamento?
Fechando por causa do último lançamento.
Comentários muito úteis
Eu encontrei o problema. A sobrecarga não genérica
ExecuteAsync
que retornaIRestRequest
não faz parte da interface, mas está disponível emRestClient
. Já consertei localmente.