public OverallValidationResult Validate(Beer beer) { var context = new ValidationContext <Beer>(beer); context.RootContextData["BadBeers"] = new List <string> { BadBeer1, BadBeer2 }; // totally trivial example of cutting out the rule for "Manufacturer" on the Beer class, since we aren't capturing it here. // note if we didn't cut this out, then that rule would fail for our class instance and would be captured in the OverallValidationResult's NonSplitErrors list. var scopedRules = _beerValidator.GetRulesFor(_beerValidatables); var fluentValidationResult = new ValidationResult(scopedRules.SelectMany(x => x.Validate(context)).ToList()); return(fluentValidationResult.ApplyResultsTo(_beerValidatables)); }