[英]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.