Вам нужно будет предоставить ссылку на исходный тип , каким-то образом , чтобы служебная программа знала, как его десериализовать.
Самый простой способ - просто добавить DLL, в которой типы были изначально определены, как ссылку на служебный проект.
Код, который вы опубликовали, позволяет вам динамически загружать ту же DLL, когда десериализатор определяет, что не может найти тип. Это более сложный подход (но не , что сложный), но в обоих случаях вам понадобится DLL, которая определяет типы ... так что, вероятно, проще всего просто статически связать, добавив ссылку.
Если ваши типы в настоящее время не находятся в DLL (например, если они находятся в EXE), я предлагаю вам извлечь классы из EXE в новую DLL и ссылаться на эту DLL как из исходного проекта, так и из утилиты. проект.