Skip to content

Instantly share code, notes, and snippets.

@mahizsas
Last active August 29, 2015 14:13
Show Gist options
  • Save mahizsas/a78b0747335c20d10225 to your computer and use it in GitHub Desktop.
Save mahizsas/a78b0747335c20d10225 to your computer and use it in GitHub Desktop.
Fluent Validator Factory
// obtain the structure map IContainer
var validatorFactory = new ValidatorFactory(container);
ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(validatorFactory));
public class ValidatorFactory : ValidatorFactoryBase
{
private readonly IContainer _container;
public ValidatorFactory(IContainer container)
{
_container = container;
}
public override IValidator CreateInstance(Type validatorType)
{
var validator = _container.TryGetInstance(validatorType);
if (validator != null)
{
var result = validator as IValidator;
if (result != null)
{
return result;
}
throw new Exception(validator.GetType().Name + " was created as validator " + validatorType.Name + ", but does not implement IValidator.");
}
return null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment