2010-11-11 5 views
1

У меня есть сериализуемый класс, который я сериализую с использованием бинарного форматирования, отправляю по сети (TCPListener, TCPClient), а затем запускаю десериализацию. Каждый раз, когда я получаю десериализацию, я получаю исключение outofmemory. Кто-нибудь знает, почему это может произойти?BinaryFormatter outofmemory exception deserialization

(Класс Я посылаю очень мал)

Спасибо,

PM

EDIT: Мой класс связанный список одного из моих других классов, а также некоторые методы. Я сделал оба Serializable.

+0

Возможно ли это тип структуры? – leppie

ответ

0

Имеет ли класс конструктор сериализации (тот, который принимает параметры и StreamingContext)? Если да, может быть ошибка в конструкторе сериализации?

(Просьба представить более подробную информацию о рассматриваемом классе.)

+0

Нет, я просто положил блок [Serializable] над объявлением класса, который класс фактически не реализует ISerializable. – user472875

+1

Если вы хотите быть уверенным в том, что находится на проводе, а что нет, попробуйте использовать атрибут [DataMemeber] рядом с каждым полем, начиная с одного маленького поля. И добавьте больше атрибутов [DataMember], пока не нажмете ошибку. – 2010-11-11 05:11:02

0

Иногда сериализатору и/или десериализатор имеют проблемы с циклическими ссылками.

Я бы порекомендовал пользовательские сериализаторы & десериализаторы. Это действительно полезно, чтобы иметь возможность смотреть только на ваш код и знать, как выглядит формат хранения.

+0

IMO, я нахожу его довольно эффективным с циклическими ссылками ... – leppie

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