WCF上DataContract和层次结构的问题

我的wcf项目中的对象有问题.
我让我们说这个对象:

[DataContract(Name="ClassA")]
public class Person{
   //---attributes---
}

[DataContract(Name="ClassB")]
public class Men : Person{
  //---attributes---
}

ClassB是另一方的ClassA的孩子.
然后我有一个帖子的方法:

[OperationContract]
[WebInvoke(UriTemplate= "Person", ResponseFormat = WebMessageFormat.Json, Method= "POST")]
public string PostPerson(Person person) {
    if(person is Men){
       //code...
    }
}

事情就是我收到了这个人(在另一方面,他们将他们作为ClassB发送)但是这个人是男人返回虚假..为什么?

最佳答案
您需要将[ServiceKnownType(typeof(Men))]属性添加到PostPerson方法.

转载注明原文:WCF上DataContract和层次结构的问题 - 代码日志