2008-12-12 61 views
1

我有一個簡單的WCF服務:StackOverflowException序列化.netTiers實體

public Order[] GetOrdersByStatus(int statusid) 
{ 
    OrderService os = new OrderService(); 
    TList<Order> orders = os.GetByOrderStateID(statusid); 

    return orders.ToArray(); 
} 

當它返回它拋出一個mscorlib程序StackOverflowException。任何想法可能會造成這種情況?

OrderService是NetTiers生成的服務,Order是NetTiers實體對象。當我返回時,數據已經從數據庫中提取出來並準備好了。除了WCF中的一個錯誤之外,我從我的操作返回後可能會導致StackOverflowException?

+0

是的,這是非常真實的,說實話,我甚至沒有看過NetTiers實體的實現。也許問題出在那裏,我只是假設NetTiers實體會以這種方式被使用,並且會產生體面的代碼。 – joshperry 2008-12-12 06:47:43

回答

3

如果執行序列化的「訂單」類型是不好的,那可能就是這樣。

+0

.netTiers生成的實體具有實體鍵。該實體鍵具有指向其父項的屬性,但該屬性未標記爲[XmlIgnore]或[NonSerialized]。當序列化實體時,它會創建一個循環,並且序列化會打亂堆棧。謝謝您的幫助。 – joshperry 2008-12-12 18:37:01