Каждый раз, как я писал об этом своём сериализаторе, я думал, что вот, всё сделано, всё готово… И каждый раз находилось что сделать еще. :) Данный пост не исключение, я снова думаю, что всё сделано. И хотя в основном это понятно (да и интересно) лишь мне, все же опишу, что именно добавилось или поменялось.
Самое главное, я все-таки решил то, на чем остановился в предыдущий раз: сериализации приватных свойств — быть. В итоге, сериализации подлежат следующие поля и свойства:
Если поле/свойство не проходит ни одно из этих условий, то оно не будет ни сериализовано, ни десериализовано. Библиотека вообще не будет пытаться его обрабатывать.
Как я и писал ранее, я занялся первым реальным применением своей библиотеки сериализации. И это оказалось верным, не во всём библиотека оказалась готовой. Старая строилась полностью на «кастомной сериализации», где всё определяли и выполняли сами сериализуемые классы, своим произвольным кодом. Потому во многих из них было такого наворочено, что в новую модель никак, кроме реализации такой же самой «кастомной сериализации», не впихнешь. У меня неоднократно возникали соблазны все-таки её реализовать, но решил держаться до последнего. :) Не исключено, что когда-нибудь и реализую, но не сейчас.
Прошло чуть более двух недель с последнего моего поста. Это время я продолжал помаленьку дополнять все ту же библиотеку (что именно, я дописывал на странице проекта), размышлял о её популяризации, и конечно же, игрался в вов. :)
Возвращаясь к размышлениям о популяризации, мне очень хотелось (да и хочется) поделиться библиотекой, равно как для пользы других, так и для отзывов про неё, с целью узнать, что не так, что еще доделать, и т.д. Думал, то ли на хабр написать, то ли еще какие места поискать, пока так и не решился. Зато решил (и теперь считаю, что так гораздо правильнее будет) сперва самому испытать библиотеку в реальном деле, а не только в тестах. Так что, займусь прикручиванием её к Рагиме. Глядишь, в процессе выяснятся еще какие-либо проблемы.
Думаю, свой проект, начатый с октября, уже могу назвать более-менее завершенным и работоспособным, и потому объявить о нём. Это библиотека на C# для сериализации/десериализации данных в XML. Подробности постарался расписать на страничке проекта, здесь же расскажу о предыстории.