我正在尝试使用数据注释但使用元数据类来验证一个类。
[MetadataType(typeof(TestMetaData))]
public class Test
{
public string Prop { get; set; }
internal class TestMetaData
{
[Required]
public string Prop { get; set; }
}
}
[Test]
[ExpectedException(typeof(ValidationException))]
public void TestIt()
{
var invalidObject = new Test();
var context = new ValidationContext(invalidObject, null, null);
context.MemberName = "Prop";
Validator.ValidateProperty(invalidObject.Prop, context);
}
测试失败。如果我放弃元数据类并仅在实际类上装饰属性,它就可以正常工作。我做错了吗?这让我处于精神错乱的边缘。请帮忙。