Question

J'ai une bibliothèque de classe qui contient mon modèle d'objet. Je voudrais chaque objet d'avoir des annotations de données aux règles de validation place dans mon modèle afin que la validation peut être partagée entre les 2 applications. L'une est une application MVC 2 et l'autre est une application Windows Forms.

Je dois être en mesure de valider le modèle d'objet manuellement à partir du code en utilisant les annotations de données, mais sans utiliser xVal. Lorsque je passe la bibliothèque de modèle d'objet au profil 4.0 client ne peut plus construire avec les composants xVal. La bibliothèque de classe d'objets de domaine sera distribué avec l'application Windows, donc je voulais utiliser le profil 4.0 client.

Toutes les idées?

Était-ce utile?

La solution

Eh bien, je vais donner une réponse avec un peu plus de substance dans le cas où il pourrait être utile à quelqu'un d'autre.

Pour notre validation, nous utilisons une méthode simple Valider comme ceci:

public void Validate(T entity)
{
    var context = new ValidationContext(entity, null, null);
    var results = new List<ValidationResult>();

    bool valid = Validator.TryValidateObject(entity, context, results, true);

    if (!valid)
        ; // do something fancy with the results here, perhaps
}

Vous pouvez aussi sauter le TryValidateObject et aller directement à ValidateObject si vous ne voulez pas faire quoi que ce soit de fantaisie avec les résultats.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top