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 для тестирования и получил исключение:

Другие вопросы по тегам