title: WebApi action losing child collection from posted json
body: <p>Suppose I post an object like this</p>
  
  <pre><code>{"Dto" : {
              "DtoId" : 1, 
              "DtoThing" : "Some value", 
              "DtoChildStuff" : [{"CsId" : 1, "ChildProperty" : "SomeThing"}]
             }}
  </code></pre>
  
  <p>to a WebApi action like this</p>
  
  <pre><code>[HttpPost]
  public Response&lt;MyDto&gt; Post(DtoWrapper&lt;MyDto&gt; input)...
  </code></pre>
  
  <p>where the parameter is just some object with a property MyDto of type MyDto, and MyDto is like this</p>
  
  <pre><code>[DataContract]
  public class MyDto
  {
      [DataMember]
      public int DtoId {get;set;}
      [DataMember]
      public string DtoThing {get;set;}
      [DataMember]
      public List&lt;ChildStuffDto&gt; DtoChildStuff {get;set;}
  }
  
  [DataContract]
  public class ChildStuffDto
  {   
      [DataMember]
      public int CsId {get;set;}
      [DataMember]
      public string ChildProperty {get;set;}
  }
  </code></pre>
  
  <p>and (by the way) the DtoWrapper is just</p>
  
  <pre><code>public class DtoWrapper&lt;T&gt;
  {
     public T Dto {get;set;}
     // So that I can add some other info that I need //
  }
  </code></pre>
  
  <p>Why can't the action see any child objects. If I change the type on the parameter to object, I can see the child object being posted in, but it doesn't get deserialised. Any ideas?</p>