Estoy usando VS 2010 RTM y trato de realizar una validación básica en un tipo simple usando MetadataTypeAttribute. Cuando pongo el atributo de validación en la clase principal, todo funciona. Sin embargo, cuando lo puse en la clase de metadatos, parece ser ignorado. Debo extrañar algo trivial, pero he estado atascado en esto por un tiempo..NET 4 RTM MetadataType atributo ignorado al usar Validator
Eché un vistazo al bloque de validación de la Biblioteca Empresarial como una solución, pero no admite la validación de propiedades únicas de fábrica. ¿Algunas ideas?
class Program
{
static void Main(string[] args)
{
Stuff t = new Stuff();
try
{
Validator.ValidateProperty(t.X, new ValidationContext(t, null, null) { MemberName = "X" });
Console.WriteLine("Failed!");
}
catch (ValidationException)
{
Console.WriteLine("Succeeded!");
}
}
}
[MetadataType(typeof(StuffMetadata))]
public class Stuff
{
//[Required] //works here
public string X { get; set; }
}
public class StuffMetadata
{
[Required] //no effect here
public string X { get; set; }
}
Gracias por esta excelente propaganda de código !! – aikeru
¿Por qué no se menciona esto en la lista MetadataTypeAttribute en MSDN? Me han colgado durante un par de horas b/c en mi proyecto MVC todo funciona bien, pero cuando creo mi aplicación de Windows necesito ser explicado –