Проверка элементов в коллекции контракта данных WCF

#wcf #validation #collections #datacontract

#wcf #проверка #Коллекции #datacontract

Вопрос:

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

 [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:

Ну, мы решили это, добавив самотестирование:

 [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));
        }
    }
}