SimpleInjector и FluentValidationFactory

Я пытаюсь автоматизировать проверку моих моделей представлений, я знаю, что могу просто добавить атрибут, чтобы указать мою проверку, но есть возможность настроить фабрику для автоматизации всего этого, на что я смотрел:этот ответ и придумал это с помощью простого инжектора 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;
        }
    }

Тогда вид модели может быть чем-то вроде

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);
    }
}

Однако переменная реализации всегда равна нулю, я также пробовал RegisterCollection, но все еще имею ту же проблему, похоже, что простой инжектор не знает, как разрешить IValidator, когда валидатор наследует от AbstractValidator (это класс, который реализует IValidator)

Ответы на вопрос(2)

Ваш ответ на вопрос