bool TryGetValidatorFor <TDefinition>(out ICanValidateFilterFor <TDefinition> validator) where TDefinition : IFilterDefinition { if (_filterDefinitionToValidatorMap.TryGetValue(typeof(TDefinition), out var validatorType)) { validator = _container.Get(validatorType) as ICanValidateFilterFor <TDefinition>; return(true); } validator = null; return(false); }
bool TryGetValidatorFor <TDefinition>(out ICanValidateFilterFor <TDefinition> validator) where TDefinition : IFilterDefinition { validator = default; var validators = _serviceProvider.GetRequiredService <IList <ICanValidateFilterFor <TDefinition> > >(); switch (validators.Count) { case < 1: return(false); case > 1: _logger.MultipleValidatorsForFilter(typeof(TDefinition), validators.Select(_ => _.GetType())); return(false); default: validator = validators[0]; _logger.FoundValidatorForFilter(typeof(TDefinition), validator.GetType()); return(true); } }