Je reçois une 'erreur non enregistrée' lors de l'exécution de l'appel ValidatorFactory.CreateInstance. Il semble que le type envoyé dans la méthode est correct.Autofac avec FluentValidation dans MVC2
Mon code d'enregistrement:
...
builder.RegisterAssemblyTypes(assembly).Where(t => t.Name.EndsWith("Validator")).As<IValidator>();
builder.Register(d => _containerProvider).As<IContainerProvider>();
builder.Register(d => new ValidatorFactory(_containerProvider.ApplicationContainer.Resolve<IContainerProvider>())).As<IValidatorFactory>();
_containerProvider = new ContainerProvider(builder.Build());
Code Mon ValidatorFactory:
public class ValidatorFactory : ValidatorFactoryBase {
private readonly IContainerProvider _containerProvider;
public ValidatorFactory(IContainerProvider containerProvider) {
_containerProvider = containerProvider;
}
public override IValidator CreateInstance(Type validatorType) {
return _containerProvider.ApplicationContainer.Resolve<IValidator>(validatorType);
}
}
Mon modèle de vue et validateur de code:
[Validator(typeof(EmployeeViewModelValidator))]
public class EmployeeViewModel {
public EmployeeViewModel() {}
public EmployeeViewModel(string firstName) {
FirstName = firstName;
}
public string FirstName { get; private set; }
}
public class EmployeeViewModelValidator : AbstractValidator<EmployeeViewModel> {
public EmployeeViewModelValidator() {
RuleFor(x => x.FirstName)
.NotEmpty();
}
}
Ma meilleure estimation est que je suis l'enregistrement de la validateurs faux.
dans votre enregistrement, je crois qu'il devrait être 'typeof (EmployeeViewModelValidator)' puisque ce serait le type passé à 'CreateInstance' –