private ValidationResult ValidateOption(object target, ConfigurationOptionModel model, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> configurationSets) { var results = new List <ValidationResult>(); var options = target as IEnumerable; if (target == null) { return(new ValidationResult(ValidationStrings.InvalidOptionType(model.Type))); } var duplicateChecker = new HashSet <string>(); foreach (var option in options) { var key = model.GetKeyFromObject(option); if (!duplicateChecker.Add(key)) { results.Add(new ValidationResult(ValidationStrings.DuplicateOptionKeys(model.Name, key))); } results.Add(ValidateProperties(option, model.ConfigurationProperties, configIdentity, configurationSets)); } return(new ValidationResult(results)); }