title: How to Cause a Subclass of a DataContract Class to Appear in the Metadata of a WCF Service?
body: <p>So let's say I have something like this:</p>
  
  <pre><code>public class Service : IService
  {
      public someExposedMethod (someClass param){
      //do some stuff
      }
  }
  
  [DataContract]
  public class someClass{}
  
  [DataContract]
  public class someSubClass : someClass {}
  </code></pre>
  
  <p>someClass is exposed and can be instantiated within the client, but someSubClass can never be instantiated and is not exposed for some reason. The only way to expose it seems to change the type of param to someSubClass. This is ridiculous. How do I do this? I don't want a method which returns an instance based on a string or something, I want the client and developer to have complete knowledge of what classes they can instantiate.</p>