Блок проверки библиотеки предприятия - проверка с использованием другого значения свойства - PullRequest
0 голосов
/ 20 сентября 2010

Мне нужно проверить два поля, только если третье поле имеет определенное значение. В этом фрагменте кода я предполагаю использовать свойства 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 Ответ

1 голос
/ 20 сентября 2010

С точки зрения валидации, я согласен с Siva, что вы можете использовать SelfValidation для этого. Однако, глядя на ваш код с точки зрения ОО, я не могу не заметить, что было бы неплохо хорошенько взглянуть на ваш дизайн. Похоже, что либо вы показываете нам два подтипа 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; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...