title: SvcUtil not generating abstract classes in the client proxy (WCF)
body: <p>I have  classes in my service defined as</p>
  
  <pre><code>[DataContract]
  [KnownType(typeof(MyConcrete1)) ]
  [KnownType(typeof(MyConcrete2)) ]
  public abstract class MyAbstract
  {
      [DataMember]
      public int AbsInt { get; set; }
  }
  [DataContract]
  public  class MyConcrete1 : MyAbstract
  {
      [DataMember]
      public int Concrete1Int { get; set; }
  }
  [DataContract]
  public class MyConcrete2 : MyAbstract
  {
      [DataMember]
      public int Concrete2Int { get; set; }
  }
  </code></pre>
  
  <p>and in my Service, I use it as </p>
  
  <pre><code>[ServiceContract]
  public interface IService1
  {
      [OperationContract]
      MyAbstract TestAbstract(MyAbstract value);
  }
  </code></pre>
  
  <p>As you can see, the method TestAbstract takes and returns the abstract parameter MyAbstract, however in the client proxy generated by SvcUtil, the type "<strong>MyAbstract</strong>" <em>is not abstract</em>!  It generated a concrete class.</p>
  
  <pre><code>[System.Diagnostics.DebuggerStepThroughAttribute()]
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
  [System.Runtime.Serialization.DataContractAttribute(Name = "MyAbstract", Namespace = "http://schemas.datacontract.org/2004/07/WcfService")]
  [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfService.MyConcrete1))]
  [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfService.MyConcrete2))]
  public partial class MyAbstract : object, System.Runtime.Serialization.IExtensibleDataObject
  {
  
      private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
  
      private int AbsIntField;
  
      public System.Runtime.Serialization.ExtensionDataObject ExtensionData
      {
          get
          {
              return this.extensionDataField;
          }
          set
          {
              this.extensionDataField = value;
          }
      }
  
      [System.Runtime.Serialization.DataMemberAttribute()]
      public int AbsInt
      {
          get
          {
              return this.AbsIntField;
          }
          set
          {
              this.AbsIntField = value;
          }
      }
  }
  </code></pre>
  
  <p>How can I force svcUtil to generate MyAbstract as an abstract class?  I'm stuck, please help...</p>