Я использую RTM RT 2010 и пытаюсь выполнить некоторую базовую проверку на простом типе, используя MetadataTypeAttribute. Когда я помещаю атрибут validation в основной класс, все работает. Однако, когда я помещаю его в класс метаданных, он, кажется, игнорируется. Мне, должно быть, не хватает чего-то тривиального, но я уже давно застрял в этом.
Я рассмотрел блок проверки Enterprise Library как обходной путь, но он не поддерживает проверку отдельных свойств из коробки. Любые идеи?
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; }
}