2010-02-13 94 views
1

正在使用企業庫驗證。使用企業庫驗證塊進行復雜對象驗證

我有類,如下面

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

回答

5

您應該用[ObjectValidator]屬性修飾您的客戶屬性。這將確保驗證中的應用將驗證對象圖:

public class Order 
{ 
    [ObjectValidator] 
    public Customer Customer { get; set; } 
} 

提示:你應該閱讀附帶Validation Application Block 4.1 Hands On Labs(PDF格式是下載的一部分)ValidationHOL.pdf(實驗室的手)文件。它會給你很多有關VAB的信息,這些信息很難在你的網站上找到。

0

您正確地聲明瞭驗證規則,但是你沒有驗證你的客戶(評價規則)。驗證與企業庫驗證塊是這樣工作的:

ValidationResults r = Validation.Validate<Customer>(myCustomer); 

請參閱相應的MSDN article

+0

這是不實際的,因爲它不啓用對象圖的驗證。 – Steven 2010-02-13 13:02:58