/// <summary> /// Implements the <see cref="object.GetHashCode"/> and <see cref="object.Equals(object)"/> /// methods. /// </summary> public IMethodReturn Execute(IMethodInvocation invocation, ExecuteHandler next) { if (invocation.MethodBase.Name == nameof(GetHashCode)) { return(invocation.CreateValueReturn(RuntimeHelpers.GetHashCode(invocation.Target), invocation.Arguments)); } if (invocation.MethodBase.Name == nameof(Equals)) { return(invocation.CreateValueReturn(ReferenceEquals(invocation.Target, invocation.Arguments.GetValue(0)), invocation.Arguments)); } return(next.Invoke(invocation, next)); }
/// <summary> /// 执行自定义的操作,返回REST结果集 /// </summary> /// <typeparam name="TReturn">REST结果集中代表结果主体的数据类型</typeparam> /// <param name="executeFunc">自定义操作,该参数是一个委托</param> /// <param name="Arguments">执行自定义操作时所需的参数列表</param> /// <returns>返回处理后的REST结果集</returns> public virtual Result <TReturn> Execute <TReturn>(ExecuteHandler <TContext, TReturn> executeFunc, IDictionary <string, object> Arguments) { this.SetHttpStatusCodeOK(); Result <TReturn> result = CreateResult <TReturn>(); try { TContext context = this.EntityContext; if (executeFunc != null) { result.Results = executeFunc.Invoke(context, Arguments); } } catch (Exception ex) { string message = string.Empty; if (ex.InnerException != null) { message = ex.InnerException.Message; } else { message = ex.Message; } result.UpdateToError(message); } finally { if (this._context != null) { this._context.Dispose(); } } return(result); }
/// <summary>Вызов выполняющего метода команды</summary> /// <param name="parameter">Параметр команды</param> public void Execute(object parameter) => _onExecute?.Invoke(parameter);
/// <inheritdoc /> public IMethodReturn CreateInvokeReturn(IArgumentCollection?arguments = null) => implementation.Invoke(arguments == null ? this : new MethodInvocation(Target, MethodBase, arguments), (m, n) => throw new NotSupportedException(ThisAssembly.Strings.GetNextNotSupported));
public void Execute(object parameter) => ExecuteHandler?.Invoke(parameter);
public void Execute(object parameter) { ExecuteHandler?.Invoke((TParam)parameter); }
/// <inheritdoc cref="ICommand.Execute(object)"/> public void Execute(object parameter) { execute?.Invoke(parameter); }