我有两个班以下设置:WCF和对象的继承
[SerializableAttribute]
public class ParentData{
[DataMember]
public string Title{get;set;}
}
[DataContract]
public class ChildData : ParentData{
[DataMember]
public string Abstract{get;set;}
}
这两个类通过WCF服务提供服务。不过,我只希望该服务将ChildData类公开给最终用户,但从父项中提取标记的DataMember属性。例如。消费客户机将有一个看起来像一个存根类:
public class ChildData{
public string Title{get;set;}
public string Abstract{get;set;}
}
如果我使用父和子类如上stub类仅包含摘要属性。
我看过使用KnownType属性上ChildData类,像这样:
[DataContract]
[KnownType(typeOf(ParentData)]
public class ChildData : ParentData{
[DataMember]
public string Abstract{get;set;}
}
然而,这没有奏效。
然后,我将DataContract属性应用于ParentData类,然而这会在客户端应用程序中创建两个我不想要的存根类。
有没有办法来告诉它应该扁平化继承到子类的串行即ChildData
可能的重复[有没有办法隐藏/展平WCF服务数据契约中的基类型?](http://stackoverflow.com/questions/3499788/is-there-any-way-to-hide-flatten – 2011-01-05 13:15:42