public bool Matches(MethodBase member)
        {
            Microsoft.Practices.Unity.Utility.Guard.ArgumentNotNull(member, "member");

            if (!methodNamePattern.IsMatch(member.Name))
            {
                return(false);
            }

            ParameterInfo[] parameters = member.GetParameters();
            if (parameters.Length != parameterRules.Count)
            {
                return(false);
            }

            for (int i = 0; i < parameters.Length; ++i)
            {
                if (!parameterRules[i].Matches(parameters[i].ParameterType))
                {
                    return(false);
                }
            }

            return(true);
        }
        /// <summary>
        /// Check to see if the given method matches the name and signature.
        /// </summary>
        /// <param name="member">Member to check.</param>
        /// <returns>True if match, false if not.</returns>
        public bool Matches(MethodBase member)
        {
            if (!methodNamePattern.IsMatch(member.Name))
            {
                return(false);
            }

            ParameterInfo[] parameters = member.GetParameters();
            if (parameters.Length != parameterRules.Count)
            {
                return(false);
            }

            for (int i = 0; i < parameters.Length; ++i)
            {
                if (!parameterRules[i].Matches(parameters[i].ParameterType))
                {
                    return(false);
                }
            }

            return(true);
        }