[英]ObjectValidator on a List<MyType>
我正在使用企業庫驗證塊將驗證添加到WCF服務套件中的入站數據對象中。
我將[ObjectValidator]
屬性添加到我的消息合同中,如下所示:
[MessageContract]
public class MyRequest
{
public MyRequest()
{
Header = new MyHeader();
Data = new List<MyType>();
}
[ObjectValidator]
[MessageHeader]
public MyHeader Header { get; set; }
[ObjectValidator]
[MessageBodyMember]
public List<MyType> Data { get; set; }
}
我的正文的[DataContract]
給出如下:
[DataContract]
public class MyType
{
[Required, DataMember(IsRequired = true)]
[RegularExpressionAttribute(RegexValidation.Name)]
public string Name { get; set; }
[Required, DataMember(IsRequired = true)]
[RegularExpressionAttribute(RegexValidation.Password)]
public string Password { get; set; }
}
我注意到的是,如果將我的MessageContract
設置為List<MyType>
則不會觸發驗證。 如果我刪除List<>
並使用直接的MyType
,則它將觸發。
顯然,企業庫代碼不會在列表下方,而是在List
對象本身中查找驗證項。 有誰知道如何解決這個問題?
答案很簡單。 在列表上使用ObjectValidator
時,需要改為使用ObjectCollectionValidator
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.