代码之家  ›  专栏  ›  技术社区  ›  Riccardo Bassilichi

企业库验证块-验证条件为其他属性值

  •  0
  • Riccardo Bassilichi  · 技术社区  · 16 年前

    只有当第三个字段具有特定值时,我才需要验证两个字段。 在这个代码截图中,我假设使用不存在的checkif属性。 只有当另一个属性具有特定值时,才可以验证字段?

    public string CustomerType { get; set; } // P=Private B=Business
    
    [NotNullValidator(MessageTemplate = "You must specify the property 'Name'", CheckIf = "CustomerType=='P'")]
    public string PrivateName { get; set; }
    
    [NotNullValidator(MessageTemplate = "You must specify the property 'Name'", CheckIf = "CustomerType=='B'")]
    public string BusinessName { get; set; }
    

    谢谢您!!!!

    1 回复  |  直到 16 年前
        1
  •  1
  •   Steven    16 年前

    从验证的角度来看,我同意您可以使用的SIVA SelfValidation 为了这个。然而,当从OO的角度来看您的代码时,我不禁会注意到,好好看看您的设计可能是件好事。好像你给我们看了两种 Customer ,即 PrivateCustomer 和 BusinessCustomer :

    class Customer
    {
    }
    
    class PrivateCustomer : Customer
    {
        public string PrivateName { get; set; }
    }
    
    class BusinessCustomer : Customer
    {
        public string BusinessName { get; set; }
    }
    

    或者…这两个属性实际上是相同的。在这两种情况下,您的验证消息甚至都称它们为“名称”。在这种情况下,您将得到这种设计:

    class Customer : Customer
    {
        public string CustomerType { get; set; }
    
        public string Name { get; set; }
    }