Проверка элементов в коллекции контракта данных WCF - PullRequest
1 голос
/ 26 мая 2011

У нас есть служба WCF, которая использует Microsoft.Practices.EnterpriseLibrary.Validation и получает такой объект (упрощенно):

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

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

Объект DataContract для назначения может выглядеть следующим образом:

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

Теперь проблема в том, что проверка свойства Name работает, но описание не проверено.Таким образом, вы не можете передать запрос с пустым Именем, но вы можете передать запрос с Именем и списком Встреч с пустыми Описаниями.

Это нормально, что WCF не проверяет элементысбор в DataContract?

1 Ответ

2 голосов
/ 16 июня 2011

Ну, мы решили это, добавив 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));
        }
    }
}
...