我有一个似乎没有使用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的限制,还是有办法使这项工作?
答案 0 :(得分:5)
默认情况下,protobuf是一个“树”结构。 Protobuf-net增加了图形支持。将AsReference = true添加到受影响的ProtoMember。