FluentValidation mehrere Prüfer

Kann ich mehr als einen Prüfer zu einem Objekt? 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.

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

Bekomme ich eine InvalidOperationException:

Eigenschaft name konnte nicht automatisch ermittelt, für den Ausdruck x => x. Bitte geben Sie entweder eine benutzerdefinierte Eigenschaft namens durch Aufruf von 'Zuordnung Zuname'.

Gibt es eine Möglichkeit dies umzusetzen, oder bin ich versucht zu verwenden FluentValidation in einer Weise, dass es nicht verwendet werden soll?

InformationsquelleAutor Bjarki Heiðar | 2012-11-02

Schreibe einen Kommentar