递归 class 的流畅验证
Fluent validations on a recursive class
我有一个像
这样的递归数据结构
public class Node
{
public string Id { get; set; }
public List<List<Node>> Nodes = new List<List<Node>>();
}
我已经为 Id 属性 定义了一个验证器,我想为节点 属性 中的所有节点元素 运行。我怎样才能做到这一点?我试过类似
RuleForEach(r => r.Nodes).ChildRules(c => c.RuleForEach(x => x).SetValidator(new NodeValidator()));
但这似乎是运行陷入无限循环。
您 运行 陷入了无限循环,因为您在 NodeValidator
的构造函数中创建了 NodeValidator
的新实例。
您应该将 this
指定为验证器:
RuleForEach(r => r.Nodes).ChildRules(c => c.RuleForEach(x => x).SetValidator(this));
我有一个像
这样的递归数据结构public class Node
{
public string Id { get; set; }
public List<List<Node>> Nodes = new List<List<Node>>();
}
我已经为 Id 属性 定义了一个验证器,我想为节点 属性 中的所有节点元素 运行。我怎样才能做到这一点?我试过类似
RuleForEach(r => r.Nodes).ChildRules(c => c.RuleForEach(x => x).SetValidator(new NodeValidator()));
但这似乎是运行陷入无限循环。
您 运行 陷入了无限循环,因为您在 NodeValidator
的构造函数中创建了 NodeValidator
的新实例。
您应该将 this
指定为验证器:
RuleForEach(r => r.Nodes).ChildRules(c => c.RuleForEach(x => x).SetValidator(this));