Ну, обновление Haack имеет отношение к тому, что было сделано мной :) Итак, позвольте мне показать вам, как его использовать, поскольку на самом деле это очень просто. Раньше у вас были такие методы, как ExecuteAsyncGet
, которые возвращают настраиваемый тип RestSharp с именем RestRequestAsyncHandle
. Этот тип не ожидал, так как async/await
работает на Task
и Task<T>
типах возвратов. Мой pull-request добавил перегрузки к существующим методам async, которые возвращают Task<T>
экземпляров. Эти перегрузки Task<T>
имеют добавленную строку «Задача», добавленную к их именам, например, перегрузка Task<T>
для ExecuteAsyncGet
называется ExecuteGetTaskAsync<T>
. Для каждой из новых перегрузок Task<T>
существует один метод, который не требует указания CancellationToken
, и есть тот, который делает.
Так что теперь на конкретный пример о том, как использовать его, который будет также показать, как использовать CancellationToken
:
private static async void Main()
{
var client = new RestClient();
var request = new RestRequest("http://www.google.com");
var cancellationTokenSource = new CancellationTokenSource();
var restResponse = await client.ExecuteTaskAsync(request, cancellationTokenSource.Token);
Console.WriteLine(restResponse.Content); // Will output the HTML contents of the requested page
}
Это будет использовать ExecuteTaskAsync
перегрузки, которая возвращает Task<IRestResponse>
экземпляра. Когда он возвращает Task
, вы можете использовать ключевое слово await
по этому методу и получить возвращаемый тип Task<T>
(в данном случае IRestResponse
).
Вы можете найти код здесь: http://dotnetfiddle.net/tDtKbL
AH! Я думаю, я: сердце: ты! (И очень уместно, учитывая, что это День Святого Валентина). Это было бы очень приятно добавить в Wiki RestSharp. Ладно, так .. любой шанс есть PCL этого, также? Или я толкаю свою удачу? –
Я не уверен, что версия PCL будет работать, но я буду изучать ее в будущем. И я согласен, что было бы неплохо добавить к вики, не знаю, разрешено ли мне редактировать его (я не являюсь постоянным хранителем библиотеки). –
Может быть, мы сможем получить @Haacked в convo, возможно, в Twitter? –