Evitar atributos para validaciones en entidades con NHValidator
Hola muchachos, actualmente uso atributos en las clases de mis entidades, pero me gustaría apartar eso a otro lado. Se que es posible hacerlo por XML, pero existe otro método un poco mas dinámico para hacer esto?
Fabian existe API Fluent para nHValidator que te permite hacer eso, puedes escribir una clase de validacion para tu entidad de la siguiente forma:
using NHibernate.Validator.Cfg.Loquacious ;
namespace Validation
{
public class MiEntidadValidation : ValidationDef<MiEntidad>
{
public RemesaValidation()
{
Define(x => x.Campo1).NotNullable();
Define(x => x.Campo2).HasValidElements();
}
}
}
Luego puedes crear una sesion del ValidatorEngine de la siguiente forma:
var configure = new FluentConfiguration();
configure.Register(
Assembly.GetAssembly(typeof(
MiEntidadValidation ))
.GetTypes().Where(t => t.Namespace.Equals("Validation"))
.ValidationDefinitions())
.SetDefaultValidatorMode(ValidatorMode.UseExternal);
//.SetMessageInterpolator<SpanishMessageInterpolator>();
var validator = new ValidatorEngine();
validator.Configure(configure);
Y con la instancia de tu ValidatorEngine puedes validar tu entidad de forma normal, sin necesidad de que tu entidad cuente con los atributos. En este post mi, hablo sobre TDD, pero el ejemplo es precisamente como mover una entidad de tener atributos de validacion a contar con una clase de Validacion: http://mario-chavez.blogspot.com/2009/03/devlab-tdd-pruebas-de-unidad.html
Tu Respuesta
YoProgramo.NET es una comunidad para unir y ayudar a los programadores hispanos.
Aquí los desarrolladores pueden encontrar repuesta a sus dudas y colaborar con los demás, compartiendo sus conocimientos y experiencia.