Beispiel #1
0
        /// <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("不存在对应名称的方法");
        }
Beispiel #2
0
        /// <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("不存在对应名称的方法");
        }
Beispiel #3
0
        /// <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("不存在对应名称的方法");
        }
Beispiel #4
0
        /// <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("不存在对应名称的方法");
        }
Beispiel #5
0
        /// <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("不存在对应名称的方法");
        }
Beispiel #6
0
        /// <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("不存在对应名称的方法");
        }
Beispiel #7
0
        /// <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("不存在对应名称的方法");
        }
Beispiel #8
0
        /// <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();
            }
        }
Beispiel #9
0
        /// <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();
            }
        }
Beispiel #10
0
        /// <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();
            }
        }
Beispiel #11
0
        /// <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();
            }
        }
Beispiel #12
0
        /// <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();
            }
        }
Beispiel #13
0
        /// <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();
            }
        }
Beispiel #14
0
        /// <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();
            }
        }
Beispiel #15
0
        /// <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();
            }
        }