Советы / предупреждения?Это может быть серьезное количество кода.Я полагаю, что было бы проще написать некоторый простой код, который преобразует вашу существующую модель в простой DTO, который можно легко сериализовать, выбрав существующий API сериализации.Наличие слоя DTO (отдельно от доменных сущностей) также позволяет значительно упростить обслуживание - вы можете реорганизовать свои доменные сущности, не нарушая сериализованные данные.
Варианты самостоятельного выполнения (помните, что вы подчеркнули, чтомодель довольно сложна, и вы не разбираетесь в битах):
- пишите сериализацию для конкретного типа вручную;очень легко ошибиться, очень трудоемко
- написать библиотеку общего назначения;Сумасшедший объем работы, решающий все крайние случаи
И это после вы выяснили формат сериализации, который работает надежно, расширяемо и поддерживает необходимые сценарии (наследование,и т.д.).