【发布时间】:2011-02-09 02:02:14
【问题描述】:
我正在使用 VS 2010 RTM 并尝试使用 MetadataTypeAttribute 对简单类型执行一些基本验证。当我将验证属性放在主类上时,一切正常。但是,当我把它放在元数据类上时,它似乎被忽略了。我一定错过了一些微不足道的事情,但我已经坚持了一段时间了。
我查看了企业库验证块作为一种解决方法,但它不支持开箱即用的单个属性的验证。有什么想法吗?
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; }
}
【问题讨论】:
标签: c# .net validation .net-4.0 metadatatype