I\'m trying to validate a class decorated with data annotation with the Validator class.
It works fine when the attributes are applied to the same class. But when I
I found the answer here: http://forums.silverlight.net/forums/p/149264/377212.aspx
MVC recognizes the MetaDataType attribute, but other projects do not. Before validating, you need to manually register the metadata class:
TypeDescriptor.AddProviderTransparent(
new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Persona), typeof(Persona_Validation)), typeof(Persona));
ValidationContext context = new ValidationContext(p, null, null);
List<ValidationResult> results = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(p, context, results, true);
Try to move the metadata class into the same namespace as the Persona class if it isn't already. I was having similar problems and moving my metadata class into the same namespace as the L2S model class worked for me.