WCF数据合同集合中的元素验证

| 我们有一个使用Microsoft.Practices.EnterpriseLibrary.Validation的WCF服务,并且接收到这样的对象(简化):
[DataMember]
[NotNullValidator]
public string Name { get; set; }

[DataMember]
public IList<Appointment> Appointments { get; set; }
约会数据合同可能看起来像:
[DataMember]
[NotNullValidator]
public string Description { get; set; }
现在的问题是,对Name属性的验证似乎可以正常进行,但是对Description的验证没有得到验证。因此,您不能传递带有空名称的请求,但是可以传递带名称和空列表的约会列表的请求。 WCF不验证DataContract中集合的元素是否正常?     
已邀请:
好吧,我们通过添加SelfValidation解决了它:
[HasSelfValidation]
public class Client
{
    [DataMember]
    [NotNullValidator]
    public string Name { get; set; }

    [DataMember]
    public IList<Appointment> Appointments { get; set; }

    [SelfValidation]
    {
        foreach (var appointment in Appointments)
        {
            results.AddAllResults(Validation.Validate(appointment));
        }
    }
}
    

要回复问题请先登录注册