2008-12-12 2 views
1

У меня есть простая служба WCF:StackOverflowException сериализация объекта .netTiers

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

    return orders.ToArray(); 
} 

когда это возвращает его бросает StackOverflowException в mscorlib. Любая идея, что может быть причиной этого?

OrderService - это услуга, созданная NetTiers, а заказ - объект объекта 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

Смежные вопросы