Validation Application Block Enterprise Library 3.0
Siguiendo con la nueva versión de Enterprise Library despues de mirar las mejoras de configuración, me he puesto a mirar Validation Application Block y me ha vuelto a sorprender gratamente. Primero porque utiliza atributos para validar y segundo proque se utiliza de forma natural y sencilla.
Validation Application Block viene con un numero de ValidatorAttributes que podemos utilizar para decorar nuestras clases. El número de ValidatorAttributes es amplio aunque podemos incluso crear nuestros porpios validadores.
Un ejemplo sencillo de su utilización seria el siguiente trozo de codigo, donde creo una clase cliente con tres atributos a los cuales les indico mediante ValidatorAttributes, cuales quiero que sean sus validaciones.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
namespace Prueba1
{
public class Cliente
{
private string _nombre;
[NotNullValidator]
[StringLengthValidator(1, 200)]
public string Nombre
{
get { return _nombre; }
set { _nombre = value; }
}
private string _telefono;
[RegexValidator(@"\(\d{3}\) \d{3}-\d{4}")]
public string Telefono
{
get { return _telefono; }
set { _telefono = value; }
}
private int _edad;
[Int32RangeValidator(23,50)]
public int Edad
{
get { return _edad; }
set { _edad = value; }
}
}
}
Como podeis ver es una forma muy sencilla. Ahora como valido una instancia de Cliente?
Tan sencillo como utilizar Validation Facade Class
ValidationResults results = Validation.Validate(cliente);
if (!results.IsValid)
{
foreach (ValidationResult result in results)
Console.WriteLine(string.Format("Key: {0},Message: {1}", result.Key.ToString(), result.Message));
Console.ReadLine();
}
Espero que os haya gustado