我们有一个使用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中集合的元素是否正常?
答案 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));
}
}
}