是否可以定义DataContract派生类?

时间:2011-03-17 19:45:17

标签: wcf

这个代码可以在WCF中使用吗? object object和derivativeObject都是将发送给客户端的对象。 我测试了这个并且我得到了一个例外 - 但我不确定这是WCF禁止的东西。

[DataContract]
public class base
{
    [DataMember]
    public string Key { get; set; }

    [DataMember]
    public string ID { get; set; }
}

[DataContract]
public class derivativeObject : base
{
    [DataMember]
    public string Name { get; set; }
}

1 个答案:

答案 0 :(得分:4)

或许可以使用Known Types(以及KnownTypeAttribute)?

[DataContract]
[KnownType(typeof(SalesPerson))]
public class Person
{
  [DataMember]
  public string Name { get; set; }
}

[DataContract]
public class SalesPerson : Person
{
  [DataMember]
  public double Commission { get; set; }
}