2016-12-15 34 views
2

假設你有以下簡化CustomerRequest類:反映在ServiceStack的元數據頁AbstractValidator規則

public class CustomerRequest : IReturn<CustomerResponse> 
{ 
    public string OrgNumber { get; set; } 
} 

對於這一要求,您有以下驗證:

public CustomerValidator() 
{ 
    RuleFor(r => r.OrgNumber).NotEmpty(); 
} 

如果您查看ServiceStack的自動生成的元數據頁面上http://[myService]/json/metadata?op=CustomerRequest,它看起來像這樣:

 
NAME PARAMETER DATA TYPE REQUIRED 
OrgNumber body string No 

如您所見,即使驗證程序要求它存在並且不爲空,該參數也會標記爲「必需:否」。

是否可以自動在元數據中反映驗證器的規則?我知道我可以使用[ApiMember(IsRequired = false)],但如果可能的話,我寧願將它綁定到驗證程序。

回答

3

只有聲明性屬性顯示在元數據頁上,因爲它們可以是靜態推斷的,任何在運行時註冊的驗證器都是不透明的,不能由ServiceStack靜態推斷。

相關問題