public ICommandBusinessValidator GetBusinessValidatorFor(Type commandType)
{
if (!typeof (ICommand).IsAssignableFrom(commandType))
return _nullCommandBusinessValidator;
Type registeredBusinessValidatorType;
_businessCommandValidators.TryGetValue(commandType, out registeredBusinessValidatorType);
if (registeredBusinessValidatorType != null)
return _container.Get(registeredBusinessValidatorType) as ICommandBusinessValidator;
var typesAndDiscoveredValidators = GetValidatorsFor(commandType, _dynamicallyDiscoveredBusinessValidators);
return BuildDynamicallyDiscoveredBusinessValidator(commandType, typesAndDiscoveredValidators);
}