public IAsyncResult BeginInvokeApi <TReturn>(IChinaAlibabaApi api, IChinaAlibabaApiArguments arguments, AsyncCallback callback, object userState)
        {
            AsyncResult <TReturn> result = new AsyncResult <TReturn>(callback, userState);

            this.PerformApiRequest <TReturn>(result, api, arguments, (error, value) => {
                result.MarkCompleted(error, value);
            });

            return(result);
        }
 private void PerformApiRequest <TReturn>(AsyncResult result, IChinaAlibabaApi api, IChinaAlibabaApiArguments args, Action <Exception, TReturn> callback)
 {
     this.PerformApiRequest(result, api, args, (error, content) => {
         this.ProcessReturnValue <TReturn>(error, content, callback);
     });
 }