protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state)
 {
     MethodResolver.InvokeMethodInstanceData instance = new MethodResolver.InvokeMethodInstanceData {
         TargetObject     = target,
         ActualParameters = base.EvaluateAndPackParameters(context, this.asyncMethod, false)
     };
     return(new ExecuteAsyncResult(instance, this, callback, state));
 }
 protected override void EndMakeMethodCall(AsyncCodeActivityContext context, IAsyncResult result)
 {
     MethodResolver.InvokeMethodInstanceData data = ExecuteAsyncResult.End(result);
     if (data.ExceptionWasThrown)
     {
         throw FxTrace.Exception.AsError(data.Exception);
     }
     base.SetOutArgumentAndReturnValue(context, data.ReturnValue, data.ActualParameters);
 }
            protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state)
            {
                MethodResolver.InvokeMethodInstanceData data = new MethodResolver.InvokeMethodInstanceData {
                    TargetObject     = target,
                    ActualParameters = base.EvaluateAndPackParameters(context, this.beginMethod, true)
                };
                int length = data.ActualParameters.Length;

                data.ActualParameters[length - 2] = callback;
                data.ActualParameters[length - 1] = state;
                context.UserState = data;
                return((IAsyncResult)base.InvokeAndUnwrapExceptions(this.beginMethod, target, data.ActualParameters));
            }
 public ExecuteAsyncResult(MethodResolver.InvokeMethodInstanceData instance, MethodResolver.AsyncWaitCallbackMethodExecutor executor, AsyncCallback callback, object state) : base(callback, state)
 {
     this.instance = instance;
     this.executor = executor;
     ActionItem.Schedule(asyncExecute, this);
 }
 protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state)
 {
     MethodResolver.InvokeMethodInstanceData instance = new MethodResolver.InvokeMethodInstanceData {
         TargetObject = target,
         ActualParameters = base.EvaluateAndPackParameters(context, this.asyncMethod, false)
     };
     return new ExecuteAsyncResult(instance, this, callback, state);
 }
 protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state)
 {
     MethodResolver.InvokeMethodInstanceData data = new MethodResolver.InvokeMethodInstanceData {
         TargetObject = target,
         ActualParameters = base.EvaluateAndPackParameters(context, this.beginMethod, true)
     };
     int length = data.ActualParameters.Length;
     data.ActualParameters[length - 2] = callback;
     data.ActualParameters[length - 1] = state;
     context.UserState = data;
     return (IAsyncResult) base.InvokeAndUnwrapExceptions(this.beginMethod, target, data.ActualParameters);
 }
 public ExecuteAsyncResult(MethodResolver.InvokeMethodInstanceData instance, MethodResolver.AsyncWaitCallbackMethodExecutor executor, AsyncCallback callback, object state) : base(callback, state)
 {
     this.instance = instance;
     this.executor = executor;
     ActionItem.Schedule(asyncExecute, this);
 }
 protected override void EndMakeMethodCall(AsyncCodeActivityContext context, IAsyncResult result)
 {
     MethodResolver.InvokeMethodInstanceData userState = (MethodResolver.InvokeMethodInstanceData)context.UserState;
     userState.ReturnValue = base.InvokeAndUnwrapExceptions(this.endMethod, userState.TargetObject, new object[] { result });
     base.SetOutArgumentAndReturnValue(context, userState.ReturnValue, userState.ActualParameters);
 }