FluentValidation mehrere Validatoren

Kann ich einem Objekt mehr als einen Prüfer hinzufügen? Zum Beispiel:

public interface IFoo
{
    int Id { get; set; }
    string Name { get; set; }
}

public interface IBar
{
    string Stuff { get; set; }
}

public class FooValidator : AbstractValidator<IFoo>
{
    public FooValidator ()
    {
        RuleFor(x => x.Id).NotEmpty().GreaterThan(0);
    }
}

public class BarValidator : AbstractValidator<IBar>
{
    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<FooBar>
{
    public FooBarValidator()
    {
        RuleFor(x => x)
            .SetValidator(new FooValidator())
            .SetValidator(new BarValidator());
    }
}

Test ausführen.

FooBarValidator validator = new FooBarValidator();
validator.ShouldHaveValidationErrorFor(x => x.Id, 0);

Ich bekomme eineInvalidOperationException:

Der Eigenschaftsname konnte für den Ausdruck x => x nicht automatisch ermittelt werden. Bitte geben Sie entweder einen benutzerdefinierten Eigenschaftsnamen an, indem Sie 'WithName' aufrufen.

Gibt es eine Möglichkeit, dies zu implementieren, oder versuche ich, FluentValidation so zu verwenden, dass es nicht für die Verwendung vorgesehen ist?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage