CommandFilter(object target, MethodInfo mi, ExecuteFilter filter) : base(target, mi) { _filterProc = filter; foreach (CommandFilterAttribute a in mi.GetCustomAttributes(typeof(CommandFilterAttribute), true)) _keys = a.Keys; if (_keys == null || _keys.Length == 0) _keys = DefaultKey; }
CommandFilter(object target, MethodInfo mi, ExecuteFilter filter) : base(target, mi) { _filterProc = filter; foreach (CommandFilterAttribute a in mi.GetCustomAttributes(typeof(CommandFilterAttribute), true)) { _keys = a.Keys; } if (_keys == null || _keys.Length == 0) { _keys = DefaultKey; } }
public static bool TryCreate(object target, MethodInfo mi, out ICommand command) { command = null; ParameterInfo[] args = mi.GetParameters(); if (args.Length == 3 && args[0].ParameterType == typeof(ICommandInterpreter) && args[1].ParameterType == typeof(ICommandChain) && args[2].ParameterType == typeof(string[])) { ExecuteFilter filter = (ExecuteFilter)Delegate.CreateDelegate(typeof(ExecuteFilter), target is Type ? null : target, mi, false); if (filter != null) { command = new CommandFilter(target, mi, filter); } } return(command != null); }