WCF — IsRequired не вызывает исключения, даже если клиент не предоставляет требуемое значение.
У меня есть простая сущность, и требуется одно из ее свойств:
[DataContract]
public class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember (IsRequired=true)]
public string LastName { get; set; }
}
Это интерфейс сервиса:
[ServiceContract]
public interface IService1
{
[OperationContract]
Person DoubleLastName(Person person);
}
а это сервис:
public class Service1 : IService1
{
public Person DoubleLastName (Person person)
{
return new Person { FirstName = person.LastName, LastName =
person.LastName};
}
}
И вот проблема: Когда клиент отправляет объект в этот сервис, без требуемого свойства, все работает . Разве я не должен получить исключение?
using (Service1Client myProxy = new Service1Client())
{
Person person1 = new Person { }; //Here I don't notify the required value.
Person person = myProxy.DoubleLastName(person1);
}
1 ответ
Это связано с тем, что DataMemberAttribute.IsRequired применяется к .NET Framework 3.0:
Для получения дополнительной информации о нем вы можете обратиться по этой ссылке .
Я попытался использовать .NET Framework3.0 для тестирования и получил исключение: