/// <summary> /// Remove a validation rule for a specify property from existing. /// </summary> /// <example> /// RemoveRule(x => x.Surname)... /// </example> /// <typeparam name="TProperty">The type of property being validated</typeparam> /// <param name="expression">The expression representing the property to validate</param> /// <returns>Successed removed or not</returns> public bool RemoveRule <TProperty>(Expression <Func <T, TProperty> > expression) { expression.Guard("Cannot pass null to RemoveRule"); var member = expression.GetMember(); var rule = nestedValidators.OfType <PropertyRule>().FirstOrDefault(s => s.Member == member); return(nestedValidators.Remove(rule)); }