2010-06-17 4 views
0

Je dépend que d'être en mesure de valider un objet dans des contextes différents en utilisant DataAnnotations dans .NET 4.Contexte validation

Par exemple: Si j'ai une classe avec ces propriétés annotées

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

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

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

I voudrait être en mesure de faire quelque chose comme

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

où contextNamePhone valide seulement Nom et téléphone, et contextAll valide toutes les propriétés (nom, téléphone et adresse dans ce cas) .

Est-ce possible? Comment le contexte de validation devrait-il être construit? Existe-t-il d'autres façons plus intelligentes de le faire?

Répondre

1

Vous pouvez ajouter un attribut personnalisé à votre classe, utiliser la réflexion de type pour obtenir le contenu de l'attribut au moment de l'exécution, puis écrire votre propre validateur pour valider la propriété dans différentes conditions.

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