Это общая проблема. Первый вопрос, который я хотел бы задать себе, - почему вы пытаетесь сериализовать объект, тип которого не помечен как сериализуемый. Автор такого типа оставил это по какой-то причине? Есть ли вероятность, что в будущем тип будет расширен с помощью некоторого несериализуемого поведения?
Тогда в моей голове 3 решения. К сожалению, вы не можете напрямую сериализовать объект. Что вы можете сделать, это:
Создайте объект-оболочку (помеченный как сериализуемый), содержащий все свойства, которые вы хотите сериализовать, и скопируйте значения из фактического объекта в объект-оболочку и обратно.
Расширение на вариант 1: Распаковка простого объекта-оболочки, создание более динамического класса-оболочки, содержащего список KeyValuePairs, в котором вы привязываете propertyNames к propertyValues и создаете некоторый универсальный код, который может заполнить этот список на основе существующего объект и заполнить объект на основе такого списка.
Используйте небезопасный код и выполняйте сериализацию самостоятельно (закрепите объект, прочитайте его память и запишите в поток памяти). << Этот метод действительно очень небезопасен </p>