До 106.10.1 следующий код возвращает Task<IRestResponse>
Client.ExecuteTaskAsync(request);
Теперь, когда 106.10.1 пометил ExecuteTaskAsync как устаревший, ожидается, что следующий код также вернет Task<IRestResponse>
Client.ExecuteAsync(request);
Вместо этого следующий код вызывает ошибку компиляции:
Client.ExecuteAsync(request);
Ошибка CS0411 Аргументы типа для метода « IRestClient.ExecuteAsync<T>(IRestRequest, CancellationToken)
» не могут быть выведены из использования. Попробуйте явно указать аргументы типа.
Я обнаружил, что следующий код компилируется и возвращает Task<IRestResponse>
Client.ExecuteAsync(request, request.Method);
Буквально вчера я изменил все тесты, чтобы использовать ExecuteAsync, где ранее использовался ExecuteTaskAsync. С компиляцией кода проблем не возникло.
Можете ли вы предоставить больше кода?
Могу подтвердить. Раньше было определение интерфейса
IRestClient.ExecuteTaskAsync(IRestRequest)
, но в v106.10.1 это помечено как устаревшее с помощью IRestClient.ExecuteAsync
.
Однако прямой замены интерфейсному методу IRestClient.ExecuteTaskAsync(IRestRequest)
. Ближайший из них - IRestClient.ExecuteTaskAsync(IRestRequest, Method)
как упоминается в строгом смысле, где вы также должны указать метод HTTP.
Это не имеет большого значения, но если метод уже является частью запроса, то, конечно, имеет смысл иметь определение интерфейса, которое считывает его из запроса? Тем более, что это было определено таким образом в устаревшем методе 😃
Я нашел проблему. Неуниверсальная перегрузка ExecuteAsync
которая возвращает IRestRequest
, не является частью интерфейса, но доступна в RestClient
. Я уже исправил это локально.
Есть какие-нибудь предположения о времени следующего релиза?
Закрытие из-за последней версии.
Самый полезный комментарий
Я нашел проблему. Неуниверсальная перегрузка
ExecuteAsync
которая возвращаетIRestRequest
, не является частью интерфейса, но доступна вRestClient
. Я уже исправил это локально.