验证WCF数据协定集合中的元素

时间:2011-05-26 14:28:34

标签: wcf validation collections datacontract

我们有一个使用Microsoft.Practices.EnterpriseLibrary.Validation的WCF服务并接收类似的对象(简化):

[DataMember]
[NotNullValidator]
public string Name { get; set; }

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

Appointment DataContract看起来像:

[DataMember]
[NotNullValidator]
public string Description { get; set; }

现在问题是Name属性的验证似乎有效,但是没有验证Description。因此,您无法传递具有空名称的请求,但您可以使用名称和带有空描述的约会列表传递请求。

WCF不验证DataContract中集合的元素是否正常?

1 个答案:

答案 0 :(得分:2)

好吧,我们通过添加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));
        }
    }
}