title: Using WCF with abstract classes
body: <p>How do I define DataContract for abstract classes in WCF? </p>
  
  <p>I have a class "Person" which I communicate successfully using WCF. Now I add a new class "Foo" referenced from Person. All still good. But when I make Foo abstract and define a sub class instead it fails. It fails on the server side with a CommunicationException, but that doesn't really tell me much. </p>
  
  <p>My simplified classes made for testing: </p>
  
  <pre><code>[DataContract]
  public class Person
  {
      public Person()
      {
          SomeFoo = new Bar { Id = 7, BaseText = "base", SubText = "sub" };
      }
  
      [DataMember]
      public int Id { get; set; }
  
      [DataMember]
      public Foo SomeFoo { get; set; }
  }
  
  [DataContract]
  public abstract class Foo
  {
      [DataMember]
      public int Id { get; set; }
  
      [DataMember]
      public string BaseText { get; set; }
  }
  
  [DataContract]
  public class Bar : Foo
  {
      [DataMember]
      public string SubText { get; set; }
  }
  </code></pre>