Контекстно-зависимая проверка - PullRequest
0 голосов
/ 17 июня 2010

Я хотел бы иметь возможность проверять объект в различных контекстах с помощью DataAnnotations в .NET 4.

Например: если у меня есть класс с этими аннотированными свойствами

[Required]
public string Name { get; set; }

[Required]
public string PhoneNumber { get; set; }

[Required]
public string Address { get; set; }

Я хотел бы иметь возможность сделать что-то вроде

bool namePhoneValid = Validator.TryValidateObject(entity, contextNamePhone, results1);
bool allValid = Validator.TryValidateObject(entity, contextAll, results2);

, где contextNamePhone проверяет только имя и телефон, а contextAll проверяет все свойства (имя, телефон и адрес в этом случае).

Isэто возможно?Как должен быть создан контекст проверки?Есть ли другие / более умные способы сделать это?

1 Ответ

1 голос
/ 17 июня 2010

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

http://oreilly.com/catalog/progcsharp/chapter/ch18.html

...