1
给定一个基类,该基类有一个通用参数,用于定义属性的类型,并且对另一个基类型有限制,当为派生类编写Fluent Validator时,该验证程序如何切换应用哪个子验证程序到通用属性?如何根据属性的运行时类型动态选择验证器?
下面是一些示例类来证明这一点的配置:
public abstract class BaseParent<TChildType> where TChildType : BaseChild
{
public TChildType Child {get; set;}
}
public abtract class BaseChild
{
public sting ChildPropOne {get; set;}
}
public class ChildA : BaseChild
{
public string ChildAPropOne {get; set;}
}
public class ChildB: BaseChild
{
public string ChildBPropOne {get; set;}
}
public class ParentA<TChildType> : BaseParent<TChildType> where TChildType : BaseChild
{
public string ParentAPropOne {get; set;}
}
public class ParentB<TChildType> : BaseParent<TChildType> where TChildType : BaseChild
{
public string ParentBPropOne {get; set;}
}
我的当前设置强制每个父类型+子类型的组合不同的验证器类。理想情况下,我可以写每个家长一个校验,每名儿童之一,并具有能够选择调用
如果您使用DI容器来解析验证器 - 您可以使用注入的实例将子验证器注入父验证器和“SetValidator”。 –
谢谢阿列克谢,这基本上是我最终结束了,虽然使用手动DI。如果你愿意的话,可以把它作为一个答案。 – Phaeze