使用企业库验证。
我有类似下面的课程
public class Customer
{
public int Id { get; set; }
[NotNullValidator(MessageTemplate = "{1} is null")]
public string FirstName { get; set; }
[NotNullValidator(MessageTemplate = "{1} is null")]
public string Surname { get; set; }
}
public class Order
{
public int Id { get; set; }
[NotNullValidator(MessageTemplate = "{1} is null")]
public Customer Customer { get; set; }
}
当我使用订单对象时,姓氏和名字都是空的,验证应该启动,但事实并非如此。
我做错了什么?
注意:我在WCF中使用它
答案 0 :(得分:5)
您应该使用[ObjectValidator]
属性修饰您的Customer属性。这将确保验证应用程序将验证对象图:
public class Order
{
[ObjectValidator]
public Customer Customer { get; set; }
}
提示:您应该阅读Validation Application Block 4.1 Hands On Labs附带的ValidationHOL.pdf(动手实验室)文档(PDF是下载的一部分)。它将为您提供有关VAB的大量信息,这些信息很难在您的信息中找到。
答案 1 :(得分:0)
您正确地声明了验证规则,但是您没有验证您的客户(评估规则)。使用企业库验证块进行验证的方式如下:
ValidationResults r = Validation.Validate<Customer>(myCustomer);
请参阅相应的MSDN article。