我有一个类似乎没有使用 protobuf-net 序列化,而且它似乎在我的类引用了另一个自身实例时中断了。这是一个示例(大大简化了我的实际代码):

[ProtoContract]
public sealed class Acorn
{
    [ProtoMember(50)]
    public string Investment;
    [ProtoMember(51)]
    public string Broker;
    [ProtoMember(52)]
    public Acorn DefaultTransferAcorn;
}

据我所知,似乎是 Acorn 类中对另一个 Acorn 类的引用导致了问题。我在单声道中收到以下错误消息:

System.Reflection.TargetInvocationException:调用的目标已抛出异常。 ---> ProtoBuf.ProtoException:检测到可能的递归(偏移量:4 级):AcornTrail3.Acorn

这是 protobuf-net 的限制,还是有办法使这项工作?

最佳答案

默认情况下,protobuf 是一个“树”结构。 Protobuf-net 添加了图形支持。将 AsReference=true 添加到受影响的 ProtoMember。

关于c# - 嵌套自身的类的 Protobuf-net 序列化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15719441/

10-12 00:13
查看更多