SimpleInjector e FluentValidationFactory

Estou tentando automatizar a validação dos meus modelos de exibição, sei que posso apenas adicionar um atributo para especificar minha validação, mas há uma opção para configurar uma fábrica para automatizar tudo isso, observei:esta resposta e veio com isso usando o injetor simples 3.1:

public class CustomValidatorFactory:ValidatorFactoryBase
    {
        private readonly Container siContainer;
        public CustomValidatorFactory(Container siContainer)
        {
            var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
            this.siContainer = siContainer;
            this.siContainer.Register(typeof(IValidator<>), assemblies);
        }
        public override IValidator CreateInstance(Type validatorType)
        {
            //var instances = siContainer.GetAllInstances(validatorType);
            var implementation = ((IServiceProvider)siContainer).GetService(validatorType);
            var validatorInstance = implementation != null ? (implementation as IValidator) : null;
            return validatorInstance;
        }
    }

Então o modelo de visualização pode ser algo como

public class Person {
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public int Age { get; set; }
}

public class PersonValidator : AbstractValidator<Person> {
    public PersonValidator() {
        RuleFor(x => x.Id).NotNull();
        RuleFor(x => x.Name).Length(0, 10);
        RuleFor(x => x.Email).EmailAddress();
        RuleFor(x => x.Age).InclusiveBetween(18, 60);
    }
}

No entanto, a variável de implementação é sempre nula, eu também tentei o RegisterCollection, mas ainda tenho o mesmo problema, parece que o injetor simples não sabe resolver o IValidator quando o validador herda de AbstractValidator (esta é a classe que implementa o IValidator)

questionAnswers(2)

yourAnswerToTheQuestion