How RuntimeTypeModel can be used to associate ProtoInclude with a type in protobuf-net?

前端 未结 1 973
一个人的身影
一个人的身影 2021-02-10 13:29

As I understood, RuntimeTypeModel allows to associate ProtoInclude with a type, which is useful for cases when the type declaration cannot be changed. But I find it hard to unde

1条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-02-10 14:09

    AddSubType() is used to specify derived types, along with their identifier; for example (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;
        }
    

    The above configures the entire type model at runtime, but you can also mix-and-match between automatic (via properties) and explicit (through code).

    0 讨论(0)
提交回复
热议问题