private MethodInfo GetMethodByName(string methodName) { List <MethodInfo> methods = ( from MethodInfo methodInfo in ControllerType.GetMember( methodName, MemberTypes.Method, BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.IgnoreCase ) where IsValidActionMethod( methodInfo, false /* stripInfrastructureMethods */ ) select methodInfo ).ToList(); switch (methods.Count) { case 0: return(null); case 1: return(methods[0]); default: throw CreateAmbiguousMethodMatchException(methods, methodName); } }
private MethodInfo GetMethod(string methodName) { List <MethodInfo> methods = ControllerType .GetMember(methodName, MemberTypes.Method, BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.IgnoreCase) .Cast <MethodInfo>() .Where(m => IsActionMethod(m, false)) .ToList(); switch (methods.Count) { case 0: return(null); case 1: return(methods[0]); default: throw Error.AmbiguousActionName(ControllerType, methodName); } }