2011-05-22 38 views

回答

9

AddSubType()用於指定派生類型及其標識符;例如(full code):以上

static RuntimeTypeModel CreateModel() { 
     var model = TypeModel.Create(); 
     model[typeof(NotInvolved)].Add(1, "D"); 
     model[typeof(SomeBase)] 
      .Add(1, "A") 
      .AddSubType(2, typeof(SomeDerived)) 
      .AddSubType(3, typeof(AnotherDerived)); 
     model[typeof(SomeDerived)].Add(1, "B"); 
     model[typeof(AnotherDerived)].Add(1, "C"); 
     model[typeof(AlsoNotInvolved)].Add(1, "E"); 
     return model; 
    } 

配置在運行時,整個型模型,但也可以混合和匹配之間的自動(通過特性)和顯式的(通過代碼)。

+1

+1 @Marc Gravell:那麼我們應該使用model.Serialize和model.Deserialize從那裏而不是ProtoBuf.Serializer.De/serialize ?另外,你的例子中AnotherDerived從SomeBase派生嗎? – sgtz 2011-07-27 15:16:38

+0

@sgtz肯定是的,從內存是。以該順序。 – 2011-07-27 15:45:21

相關問題