using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
using System.ComponentModel;
public static void Main()
var provider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof (MyClass), typeof (MyClassMeta));
TypeDescriptor.AddProvider(provider, obj);
Console.WriteLine("obj:");
Console.WriteLine("obj2:");
private static void Validate(object obj)
ValidationContext context = new ValidationContext(obj, null, null);
List<ValidationResult> results = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(obj, context, results, true);
foreach (ValidationResult vr in results)
Console.Write("Member Name:{0}", vr.MemberNames.First());
Console.WriteLine(" - {0}", vr.ErrorMessage);
Console.WriteLine("I am valid.");