Ich verwende VS 2010 RTM und versuche, eine grundlegende Validierung für einen einfachen Typ mit MetadataTypeAttribute durchzuführen. Wenn ich das Validierungsattribut auf die Hauptklasse setze, funktioniert alles. Wenn ich es jedoch in die Metadatenklasse einfüge, scheint es ignoriert zu werden. Ich muss etwas Triviales vermissen, aber ich stecke jetzt schon eine Weile fest..NET 4 RTM MetadataType-Attribut bei Verwendung von Validator ignoriert
Ich habe mir den Enterprise Library-Validierungsblock als Workaround angesehen, aber die Validierung einzelner Eigenschaften nicht unterstützt. Irgendwelche Ideen?
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; }
}
Danke für diesen ausgezeichneten Klappentext !! – aikeru
Warum wird dies nicht in der MetadataTypeAttribute-Auflistung auf MSDN angegeben? Ich habe ein paar Stunden b/c in meinem MVC-Projekt aufgehängt, alles funktioniert gut, aber beim Erstellen meiner Windows-App muss ich explicate sein –