protobuf-net シリアライゼーションで動作していないように見えるクラスがあり、クラスがそれ自体の別のインスタンスへの参照を持っている時点で壊れているようです。これが例です(私の実際のコードから大幅に簡略化されています):
[ProtoContract]
public sealed class Acorn
{
[ProtoMember(50)]
public string Investment;
[ProtoMember(51)]
public string Broker;
[ProtoMember(52)]
public Acorn DefaultTransferAcorn;
}
私が知る限り、問題を引き起こしているように見えるのは、Acorn クラス内の別の Acorn クラスへの参照です。mono で次のエラー メッセージが表示されます。
System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> ProtoBuf.ProtoException: 再帰の可能性が検出されました (オフセット: 4 レベル): AcornTrail3.Acorn
これは protobuf-net の制限ですか、それともこれを機能させる方法はありますか?