Pregunta

Tengo una biblioteca de clases que contiene mi modelo de objetos. Me gustaría que cada objeto tenga anotaciones de datos a las reglas de validación lugar en mi modelo, de manera que la validación se puede compartir entre 2 aplicaciones. Una de ellas es una aplicación MVC 2 y el otro es un formas aplicación de Windows.

Tengo que ser capaz de validar el modelo de objetos de forma manual desde el código usando las anotaciones de datos, pero sin utilizar XVal. Cuando cambio la biblioteca modelo de objetos para el perfil de cliente 4.0 se puede construir ya no está con los componentes XVal. La biblioteca de clases de objeto de dominio será distribuido con la aplicación de las ventanas, así que quería utilizar el perfil 4.0 cliente.

¿Alguna idea?

¿Fue útil?

Solución

Bueno, va a proporcionar una respuesta con una sustancia poco más por si pudiera ser de ayuda a otra persona.

Para nuestra validación, se utiliza un método simple Validar la siguiente manera:

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
}

También puede omitir el TryValidateObject e ir derecho a ValidateObject si no quiere hacer nada de fantasía con los resultados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top