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