我仍在玩最新發布的protobuf-net版本,而且我遇到了一個我不明白的問題。在序列化圖形時出現異常
讓我們考慮一塊下面的代碼:
[ProtoContract]
class Node
{
public Node()
{
Children = new List<Node>();
}
[ProtoMember(1, IsRequired = true)]
public int Data { get; set; }
[ProtoMember(2, IsRequired = true, AsReference = true)]
public List<Node> Children { get; set; }
public void AddChild(Node child)
{
Children.Add(child);
}
}
static void Main()
{
Node n = new Node {Data = 0}, root = n;
for (int i=1; i<15; i++)
{
Node child = new Node {Data = i};
n.AddChild(child);
n = child;
}
Node clone = Serializer.DeepClone(root);
}
它拋出消息類型ProtoException
的異常「檢測到可能的遞歸...」
有趣的是,如果我刪除屬性AsReference
對Children
屬性它不!不幸的是,上面的這些行只是爲了說明問題而寫的,我需要這個屬性來表示我正在使用的真實結構。
所以我的問題是...這是一個已知的問題,是否有任何補丁計劃很快解決它?或者是否有人知道任何解決方法?
感謝
令人討厭......我會稍後看 – 2011-05-25 16:52:55
我已經推動了代碼修復;我計劃很快重新發布dll# – 2011-05-25 21:12:40