-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Milestone
Description
FluentValidation version
11.7.1
ASP.NET version
No response
Summary
#2097 (Fix for multi-level child-rules) broke our validation code. We get exception Unable to cast object of type FluentValidation.Internal.RuleBuilder2[Root, Bar] to type FluentValidation.Internal.RuleBuilder2[Root, Base] when setting up validation in sample below.
It worked with 11.5.1, but broke when we upgraded to 11.7.1
Steps to Reproduce
using FluentValidation;
public class Root
{
public Bar Data {get; set;} = null;
}
public class Base
{
public int Value {get; set;}
}
public class Bar : Base
{
public int BarValue {get; set;}
}
public class RootValidator : AbstractionValidator<Root>
{
public RootValidator()
{
RuleFor(x => x).ChildRules(RootRules);
}
public static Action<InlineValidator<Base>> BaseRules()
{
return rules => {
rules.RuleFor(x => x.Value).NotEqual(-1);
};
}
public static Action<InlineValidator<Root>> RootRules()
{
return rules => {
rules.RuleFor(x => x.Data).ChildRules(BaseRules());
};
}
}
public static class Program
{
public static void Main()
{
var validator = new RootValidator();
var result = validator.Valdiate(new Root());
}
}
Metadata
Metadata
Assignees
Labels
No labels