title: protobuf-net serialization with inheritance does not work in some cases
body: <p>I'm currently struggeling with protobuf-net to have my classes correctly serialized.</p>
  
  <p>I have the following class structure</p>
  
  <pre><code>[DataContract]
  public class BaseClass&lt;T&gt;
  {
      [DataMember(Order = 1)]
      public bool IsOk { get; set; }
  
      [DataMember(Order = 2)]
      public List&lt;T&gt; Results { get; set; }
  }
  
  [DataContract]
  public class MyDto
  {
      [DataMember(Order = 1)]
      public string Name { get; set; }
  }
  
  [DataContract]
  public class ResultOfMyDtos : BaseClass&lt;MyDto&gt;
  {
      [DataMember(Order = 3)]
      public string Validation { get; set; }
  }
  </code></pre>
  
  <p>And I'm registering the subtypes like this:</p>
  
  <pre><code>RuntimeTypeModel.Default.Add(typeof(BaseClass&lt;MyDto&gt;), true);
  RuntimeTypeModel.Default.Add(typeof(ResultOfMyDtos), true);
  RuntimeTypeModel.Default[typeof(BaseClass&lt;MyDto&gt;)].AddSubType(1000, typeof(ResultOfMyDtos));
  </code></pre>
  
  <p>Now serializing the base class works fine, the List is correctly serialized:</p>
  
  <pre><code>// Works
  var test1 = new BaseClass&lt;MyDto&gt;() { Results = new List&lt;MyDto&gt; { new MyDto { Name = "1" } } };
  Serializer.Serialize(ms, test1)
  </code></pre>
  
  <p>Inheritance won't work at all, I just see the "IsOk" boolean:</p>
  
  <pre><code>// Does not return anything but the "IsOk" property
  var test2 = new ResultOfMyDtos&lt;MyDto&gt;() { Validation = "Xy", Results = new List&lt;MyDto&gt; { new MyDto { Name = "1" } } };
    Serializer.Serialize(ms, test2)
  </code></pre>
  
  <p>Any ideas on this? Would be very nice, since I don't have a clue.</p>