Вам нужно сделать, чтобы ваш содержащий объект реализовал IDisposable. Но только то, что вы стали сериализованным, не означает, что вам также нужно избавляться. Ссылочный объект должен затем вызвать dispose после сериализации, если это то, что ожидается.
Что касается десериализованного объекта, он также должен быть удален по любым ссылкам на него, когда он будет использован (предположительно в другом домене приложения?). Так что это означает, что оба экземпляра должны быть ликвидированы. Если ресурс, которым вы делитесь, является единичным экземпляром (например, IntPtr), то вам, возможно, нужно быть более умным в этом, например, не утилизировать этот неуправляемый ресурс с этим объектом, а с более высокого уровня.
Общее правило: тот, кто его создает, распоряжается им.
Еще один распространенный шаблон, описанный в документации IDisposable , - это вызов Dispose () в ваш деструктор объектов. Это даст вам недетерминированное время для вашей утилизации, но гарантированно сработает (при условии, что у вас нет эталонных утечек).