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); }
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); }