Używam programu VS 2010 RTM i próbuję wykonać podstawowe sprawdzanie poprawności na prostym typie przy użyciu MetadataTypeAttribute. Kiedy umieszczam atrybut sprawdzania poprawności na głównej klasie, wszystko działa. Jednak po umieszczeniu go na klasie metadanych wydaje się, że jest on ignorowany. Muszę omijać coś banalnego, ale utknąłem na tym od jakiegoś czasu..NET 4 Atrybut RTad MetadataType jest ignorowany podczas korzystania z Validatora
Podczas obejścia obejrzałem blok sprawdzania poprawności biblioteki korporacyjnej, ale nie obsługuje on sprawdzania pojedynczych właściwości po wyjęciu z pudełka. Jakieś pomysły?
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; }
}
Dzięki za tę doskonałą blurb kodu !! – aikeru
Dlaczego nie jest to odnotowane na liście MetadataTypeAttribute w witrynie MSDN? Zostałem zawieszony na kilka godzin b/cw moim projekcie MVC wszystko działa dobrze, ale przy tworzeniu aplikacji Windows muszę być wyjaśniony –