DataContract用于序列化接口子类

时间:2013-09-15 13:38:20

标签: c# wcf datacontract

我的情况是这样的: 有一种服务方法应该接受一些接口的集合。 客户端有几个实现该接口的类。为了论证,可能只有一个,重点是他们只添加私人成员。 我不希望服务知道客户端中的实现类型。 那么有没有办法在服务中创建该接口的另一个子类,它将充当DataContract,以便正确地序列化/反序列化我在客户端中的现有类?或者我可能需要一个不同的解决方案?

1 个答案:

答案 0 :(得分:0)

您可以在客户端创建一个基类,其中实现该接口的所有子类都将继承,并为每个子类添加KnownTypeAttribute

[KnownType(typeof(Subclass1))]
[KnownType(typeof(Subclass2))]
[DataContract]
public class BaseClass : ISomeInterface
{

}