嵌套的Protobuf-net序列化

Jef*_*son 3 c# mono serialization protobuf-net

我有一个类似乎没有使用protobuf-net序列化,它似乎打破了我的类有一个引用自己的另一个实例.这是一个例子(从我的实际代码中大大简化):

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

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

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

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

Mar*_*ell 5

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