/// <summary> /// 通过异步代理执行Func /// </summary> /// <remarks> /// 如果方法存在,就异步调用方法,以返回值为参数调用asyncAction, /// 否则抛出异常 /// </remarks> public void Run <TArg1, TArg2, TArg3, TArg4>(ITackProxy proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { var action = GetDelegate <Action <TArg1, TArg2, TArg3, TArg4> >(); if (action != null) { proxy.Run(() => action(arg1, arg2, arg3, arg4)); } throw new ArgumentException("不存在对应名称的方法"); }
/// <summary> /// 通过异步代理执行Func /// </summary> /// <remarks> /// 如果方法存在,就异步调用方法,以返回值为参数调用asyncAction, /// 否则抛出异常 /// </remarks> public void Execute <TArg1, TArg2, TArg3, TArg4, TResult>(ITackProxy <TResult> proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { var func = GetDelegate <Func <TArg1, TArg2, TArg3, TArg4, TResult> >(); if (func != null) { proxy.Run(() => func(arg1, arg2, arg3, arg4)); } throw new ArgumentException("不存在对应名称的方法"); }
/// <summary> /// 通过异步代理执行Action /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则抛出异常 /// </returns> public void Run(ITackProxy proxy) { var action = GetDelegate <Action>(); if (action != null) { proxy.Run(action); } throw new ArgumentException("不存在对应名称的方法"); }
/// <summary> /// 通过异步代理执行Action /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则抛出异常 /// </returns> public void Run <TArg1, TArg2, TArg3>(ITackProxy proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, string name = null) { var action = GetDelegate <Action <TModel, TArg1, TArg2, TArg3> >(name); if (action != null) { proxy.Run(() => action(Model, arg1, arg2, arg3)); } throw new ArgumentException("不存在对应名称的方法"); }
/// <summary> /// 通过异步代理执行Func /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则抛出异常 /// </returns> public void Execute <TResult>(ITackProxy <TResult> proxy) { var func = GetDelegate <Func <TResult> >(); if (func != null) { proxy.Run(func); } throw new ArgumentException("不存在对应名称的方法"); }
/// <summary> /// 通过异步代理执行Action /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则抛出异常 /// </returns> public void Run(ITackProxy proxy, string name = null) { var action = GetDelegate <Action <TModel> >(name); if (action != null) { proxy.Run(() => action(Model)); } throw new ArgumentException("不存在对应名称的方法"); }
/// <summary> /// 通过异步代理执行Func /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则抛出异常 /// </returns> public void Execute <TArg1, TArg2, TArg3, TResult>(ITackProxy <TResult> proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, string name = null) { var func = GetDelegate <Func <TModel, TArg1, TArg2, TArg3, TResult> >(name); if (func != null) { proxy.Run(() => func(Model, arg1, arg2, arg3)); } throw new ArgumentException("不存在对应名称的方法"); }
/// <summary> /// 通过异步代理执行Func /// </summary> /// <remarks> /// 如果方法存在,就异步调用方法,以返回值为参数调用asyncAction, /// 否则同步调用proxy.Exist /// </remarks> public void TryRun <TArg1, TArg2, TArg3, TArg4>(ITackProxy proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { var action = GetDelegate <Action <TArg1, TArg2, TArg3, TArg4> >(); if (action != null) { proxy.Run(() => action(arg1, arg2, arg3, arg4)); } else { proxy.Exist(); } }
/// <summary> /// 通过异步代理执行Action /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则同步调用proxy.Exist /// </returns> public void TryRun <TArg1>(ITackProxy proxy, TArg1 arg1) { var action = GetDelegate <Action <TArg1> >(); if (action != null) { proxy.Run(() => action(arg1)); } else { proxy.Exist(); } }
/// <summary> /// 通过异步代理执行Action /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则同步调用proxy.Exist /// </returns> public void TryRun(ITackProxy proxy) { var action = GetDelegate <Action>(); if (action != null) { proxy.Run(action); } else { proxy.Exist(); } }
/// <summary> /// 通过异步代理执行Func /// </summary> /// <remarks> /// 如果方法存在,就异步调用方法,以返回值为参数调用asyncAction, /// 否则同步调用proxy.Exist /// </remarks> public void TryExecute <TArg1, TArg2, TArg3, TArg4, TResult>(ITackProxy <TResult> proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4) { var func = GetDelegate <Func <TArg1, TArg2, TArg3, TArg4, TResult> >(); if (func != null) { proxy.Run(() => func(arg1, arg2, arg3, arg4)); } else { proxy.Exist(); } }
/// <summary> /// 通过异步代理执行Func /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则同步调用proxy.Exist /// </returns> public void TryExecute <TResult>(ITackProxy <TResult> proxy) { var func = GetDelegate <Func <TResult> >(); if (func != null) { proxy.Run(func); } else { proxy.Exist(); } }
/// <summary> /// 通过异步代理执行Action /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则同步调用proxy.Exist /// </returns> public void TryRun <TArg1, TArg2, TArg3>(ITackProxy proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, string name = null) { var action = GetDelegate <Action <TModel, TArg1, TArg2, TArg3> >(name); if (action != null) { proxy.Run(() => action(Model, arg1, arg2, arg3)); } else { proxy.Exist(); } }
/// <summary> /// 通过异步代理执行Action /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则同步调用proxy.Exist /// </returns> public void TryRun(ITackProxy proxy, string name = null) { var action = GetDelegate <Action <TModel> >(name); if (action != null) { proxy.Run(() => action(Model)); } else { proxy.Exist(); } }
/// <summary> /// 通过异步代理执行Func /// </summary> /// <returns> /// 如果方法存在异步调用proxy.Run,否则同步调用proxy.Exist /// </returns> public void TryExecute <TArg1, TArg2, TArg3, TResult>(ITackProxy <TResult> proxy, TArg1 arg1, TArg2 arg2, TArg3 arg3, string name = null) { var func = GetDelegate <Func <TModel, TArg1, TArg2, TArg3, TResult> >(name); if (func != null) { proxy.Run(() => func(Model, arg1, arg2, arg3)); } else { proxy.Exist(); } }