0

我有一个简单的实体,它的属性之一是必需的:

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

1 回答 1

0

这是因为 DataMemberAttribute.IsRequired 适用于 .NET Framework 3.0:

在此处输入图像描述

有关它的更多信息,您可以参考此链接

我尝试使用 .NET Framework3.0 进行测试,结果出现异常:

在此处输入图像描述

于 2021-01-04T01:33:18.870 回答