相关疑难解决方法(0)

protobuf-net继承

Marc在stackoverflow上提到,在protobuf-net的v2中,可以使用ProtoInclude属性(或类似的方法)来序列化/反序列化类层次结构,而无需在基类中指定每个子类型.这是实现了吗?我们有一个可以在外部库中派生的插件接口,因此无法知道派生类型是什么.我们可以在类型之间保持唯一的编号,但我在网上找不到任何示例,缺少使用ProtoInclude属性,需要指定子类型.

如果我不知道子类型是什么,我将如何使用protobuf-net实现继承?

c# protocol-buffers protobuf-net

12
推荐指数
2
解决办法
7211
查看次数

为什么我的List <Foo>不能用protobuf-net序列化?

[DataContract] public class Foo 
{
   [DataMember(Order = 1)] public int FooId { get; set; }
}

[DataContract] public class Bar : Foo 
{
   [DataMember(Order = 2)] public string Name { get; set; }
}

[DataContract] public class Baz : Bar
{
    [DataMember(Order = 3)] public string BazName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后,在代码中我设置了一个新的TypeModel并添加了我的子类型

_ProtobufSerializer = TypeModel.Create();
_ProtobufSerializer.Add(typeof(Bar), true);
_ProtobufSerializer.Add(typeof(Baz), true);
var type = _ProtobufSerializer.Add(typeof(Foo), true);
type.AddSubType(100, typeof(Bar));
type.AddSubType(101, typeof(Baz));
Run Code Online (Sandbox Code Playgroud)

现在,我可以将Foo,Bar和Baz的实例序列化.如果我序列化

var listThatWorks = new List<Foo> { new Foo { FooId …
Run Code Online (Sandbox Code Playgroud)

c# protobuf-net

5
推荐指数
1
解决办法
1317
查看次数

标签 统计

c# ×2

protobuf-net ×2

protocol-buffers ×1