Domanda

ho una libreria di classi che contiene il mio modello di oggetti. Mi piacerebbe ogni oggetto di avere annotazioni di dati alle regole di validazione posto nel mio modello in modo che la convalida può essere condiviso tra 2 applicazioni. Uno è un app MVC 2 e l'altro è un forme app di Windows.

ho bisogno di essere in grado di convalidare il modello a oggetti manualmente dal codice usando le annotazioni di dati, ma senza usare xVal. Quando accendo la libreria di oggetti modello al profilo 4.0 del client è in grado di costruire non è più con i componenti ValX. La libreria di classi oggetto di dominio sarà distribuito con l'applicazione di Windows, così ho voluto utilizzare il profilo 4.0 del client.

Tutte le idee?

È stato utile?

Soluzione

Bene, ti forniscono una risposta con un po 'più di sostanza nel caso potrebbe essere di aiuto a qualcun altro.

Per la nostra validazione, usiamo un metodo semplice Convalida in questo modo:

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
}

Si può anche saltare la TryValidateObject e andare a destra per ValidateObject se non si vuole fare nulla di fantasia con i risultati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top