В .NET (как минимум <= 2) существует проблема с сериализацией объектов, которые вызывают события, когда эти события обрабатываются несериализуемым объектом (например, формой Windows). </p>
Из-за способа, которым VB.NET реализует события, когда вы сериализуете объект, его события тоже сериализуются (потому что события на самом деле реализуются с использованием скрытых полей делегата многоадресной рассылки). Побочным эффектом этого является то, что любой объект, который обрабатывает события, вызванные сериализуемым объектом, будет считаться частью графа объекта и также будет сериализован.
Можно найти некоторые обходные пути, реализуя пользовательскую сериализацию или используя делегаты вместо событий:
Однако ни один из них, похоже, не полностью удовлетворяет авторов и пользователей.
.NET 3/4 решает эту проблему?