C#和Windows Phone 7中的操作/代理(使用RestSharp)

时间:2012-12-18 08:22:24

标签: windows-phone-8 restsharp

我正在WP8上用RestSharp编写一个程序,其中LastFMSharp确切,但我必须将方法更新为ExecuteAsync自WP。这个问题是,在Execute(request)返回RestResponse之前,ExecuteAsync返回一个RestRequestAsyncHandle。我的方法需要RestResponse。那么如何将其纳入var响应?请记住结构是

RestSharp.RestClient.ExecuteAsync<T>(RestSharp.IRestRequest,System.Action<RestSharp.IRestResponse<T>,RestSharp.RestRequestAsyncHandle>)

感谢您的帮助!

原件:

public RestResponse<T> Execute<T>(RestRequest request) where T : new()
{
     request.AddParameter("api_key", _apiKey);

     var response = _restClient.Execute<T>(request);
     RequestCount++;
     DataCount += response.RawBytes.Length;
     return response;
}

已更改(不要确定应该回调什么):

public RestResponse<T> Execute<T>(RestRequest request) where T : new()
{
         request.AddParameter("api_key", _apiKey);

        //var response = 
        _restClient.ExecuteAsync(request, response =>
                        {
                            callback(response.Content);
                        });

        RequestCount++;
        DataCount += response.RawBytes.Length;
        return response;
}

回调初始化响应?我怎么做到这一点?

1 个答案:

答案 0 :(得分:1)

你不能因为响应在未来某个时间才会发生,此时将调用回调。

由于这是Windows Phone 8,请尝试使用async\await pattern