Dot-Net

如何使用 RuntimeTypeModel 將 ProtoInclude 與 protobuf-net 中的類型相關聯?

  • August 30, 2019

據我了解,RuntimeTypeModel 允許將 ProtoInclude 與類型相關聯,這對於無法更改類型聲明的情況很有用。但我發現很難理解它實際上是如何完成的。

有例子嗎?

謝謝。

AddSubType()用於指定派生類型及其標識符;例如(完整程式碼):

   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;
   }

以上在執行時配置了整個類型模型,但您也可以在自動(通過屬性)和顯式(通過程式碼)之間混合匹配。

引用自:https://stackoverflow.com/questions/6088004