2015-04-14 3 views
1

Можно ли указать свойство - обязательное поле без использования атрибутов аннотации данных? Вместо использования атрибутов аннотации я хочу установить его как обязательное поле, основанное на конкретных условиях. Для, например, что-то вроде нижеЗадайте требуемое поле на основе конкретных условий

if (true) 
{ 
    //set myObj.Name as required field 
} 

Edit: Причина, почему я должен сделать это, я звоню класс бизнес-услуг нашей собственной структуры, которую я не могу коснуться, и внутри класса, когда объект сохраняется, обязательная проверка уже обслуживается.
Но в моем требовании мне нужно сохранить свою сущность несколько раз, и каждый раз обязательная проверка может отличаться. Вот почему я должен динамически отмечать свойства, необходимые для полей. В противном случае я должен сделать свою собственную обязательную проверку перед вызовом класса бизнес-сервиса, который я не хочу делать.

+1

Возможно, вы можете использовать getter этого свойства, чтобы создать соответствующее исключение, если свойство имеет значение null (или имеет значение по умолчанию) или (вы также можете показать всплывающее окно). – bit

ответ

0

Из вашего описания, похоже, вам необходимо предоставить свою «собственную обязательную проверку». Я говорю это по двум причинам;

  • Чтобы обеспечить вашу пользователя значимую обратную связь относительно того, почему требуется что-то поле
  • Кроме того, чтобы удовлетворить контракт вашего класса бизнес-услуг

Вы можете иметь метод «проверки», который просто работает через ваш набор правил (что обязательная проверка, о которой вы упоминали ранее) и вернуть ей список строк, указывающих правила, которые были нарушены при попытке сохранить. Затем вы можете использовать эти строки, чтобы заполнить текст окна сообщения, лог-файл или что-то еще, чтобы дать пользователю полезную обратную связь относительно того, почему что-то не было сохранено, а также обеспечение сохранения сохраненных данных соответствует классу бизнес-сервисов ,

+0

Все, что вы упомянули, как предоставление значимой обратной связи .. и т. д. уже были выполнены в классе бизнес-услуг, и именно по этой причине я не хочу повторять это. – Kai

+0

В своем вопросе вы заявляете, что в своем «требовании» мне нужно сохранить свою сущность несколько раз, и каждый раз обязательная проверка может быть различной ». Если вы обнаружили, что для данного сохранения одна из ваших обязательных проверок не удалась, кому вы сообщаете об этом? Вы говорите, что хотите «указать», что поле требуется. Я просто интерпретировал это как то, что вы собирались предоставить обратную связь кому-то. –

+0

Когда обязательная проверка завершится неудачей в классе бизнес-службы, будет выбрано настраиваемое исключение, и именно так я могу узнать, какие поля пустые и соответственно обеспечить обратную связь. И поскольку все уже существует, я просто не хочу беспорядка, делая то же самое за пределами бизнес-класса, если это возможно. – Kai

Смежные вопросы