public DirectMethod(MethodBase method) { var actionNameAttr = method.GetAttribute<ActionNameAttribute>(); Name = actionNameAttr != null ? actionNameAttr.Name : method.Name; var directEventAttr = method.GetAttribute<DirectEventAttribute>(); EventName = directEventAttr != null ? directEventAttr.Name : null; var useNamedArgsAttr = method.GetAttribute<NamedArgumentsAttribute>(); if (useNamedArgsAttr == null) { Len = method.GetParameters().Length; } else { var parameterInfos = method.GetParameters(); Params = new string[parameterInfos.Length]; for (int i = 0; i < parameterInfos.Length; i++) { Params[i] = parameterInfos[i].Name; } } IsFormHandler = method.HasAttribute<FormHandlerAttribute>(); UsesNamedArguments = method.HasAttribute<NamedArgumentsAttribute>(); }