【发布时间】:2021-01-02 14:02:37
【问题描述】:
我有一个简单的实体,它的一个属性是必需的:
[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);
}
【问题讨论】:
-
@DingPeng 相信我,如果我认为问题已解决,我会将其标记为答案。在这种情况下,您的链接对我没有帮助。
-
@Ding 在您提供的链接中,您可以看到它是在 .NET Framework 3.0 中引入的。没有看到“仅”这个词。
-
我认为这可能是由于 .net 3.0 之后进行的一些优化没有引发此异常。如果我们自己序列化和反序列化 Person 对象,仍然会抛出异常。
标签: wcf proxy attributes isrequired