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