FluentValidation несколько валидаторов
Могу ли я добавить более одного валидатора к объекту? Например:
public interface IFoo
{
int Id { get; set; }
string Name { get; set; }
}
public interface IBar
{
string Stuff { get; set; }
}
public class FooValidator : AbstractValidator
{
public FooValidator ()
{
RuleFor(x => x.Id).NotEmpty().GreaterThan(0);
}
}
public class BarValidator : AbstractValidator
{
public BarValidator()
{
RuleFor(x => x.Stuff).Length(5, 30);
}
}
public class FooBar : IFoo, IBar
{
public int Id { get; set; }
public string Name { get; set; }
public string Stuff { get; set; }
}
public class FooBarValidator : AbstractValidator
{
public FooBarValidator()
{
RuleFor(x => x)
.SetValidator(new FooValidator())
.SetValidator(new BarValidator());
}
}
Запуск теста.
FooBarValidator validator = new FooBarValidator();
validator.ShouldHaveValidationErrorFor(x => x.Id, 0);
Я получаю:InvalidOperationException
Не удалось автоматически определить имя свойства для выражения x => Икс. Пожалуйста, укажите любое другое имя свойства, позвонивWithName.
Есть ли способ реализовать это или я пытаюсь использовать FluentValidation таким образом, чтобы этоне предназначен для использования?