2012-04-10 5 views
1

Я использую BinaryFormatter для сериализации объекта с другими другими объектами в нем. Сериализация приводит к бесконечному циклу с одним из этих объектов, и после просмотра через них я не могу найти, где этот цикл вызывает. Есть ли возможность отлаживать процесс сериализации шаг за шагом в VisualStudio или есть ли еще один инструмент для этого?Отладка сериализации BinaryFormatter

+0

Вы получаете 'StackOverflowException'? Если нет, то это не сериализатор. – Aliostad

ответ

1

Одна вещь, которую вы можете попробовать, - добавить атрибуты класса [NonSerialized], пока сериализация не завершится успешно. Это не совсем отладка, но может быстро найти участника, вызывающего проблему.

0

Вы можете попробовать с помощью OnSerializing или по атрибутам OnSerialized, которые позволяют подключаться к процессу сериализации. (См ref1 и ref2)

Это большеменьше означает, что при следующем определении

[Serializable] 
public class Foo{ 

    [OnSerializing] 
    public void DebugHook(StreamingContext context){ 
    //here goes magic stuff... 
    } 
} 

ваша точка останова внутри метода будет пойман визуальной студии.

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