программирование

Снова о сериализаторе

Каждый раз, как я писал об этом своём сериализаторе, я думал, что вот, всё сделано, всё готово… И каждый раз находилось что сделать еще. :) Данный пост не исключение, я снова думаю, что всё сделано. И хотя в основном это понятно (да и интересно) лишь мне, все же опишу, что именно добавилось или поменялось.

Самое главное, я все-таки решил то, на чем остановился в предыдущий раз: сериализации приватных свойств — быть. В итоге, сериализации подлежат следующие поля и свойства:

  • Публичные с полным доступом, без атрибута NotSerialize.
  • Публичные с доступом только на чтение, если они входят в параметры конструктора или их тип является обновляемым, без атрибута NotSerialize.
  • Приватные и защищенные с явно указанным атрибутом Serialize.

Если поле/свойство не проходит ни одно из этих условий, то оно не будет ни сериализовано, ни десериализовано. Библиотека вообще не будет пытаться его обрабатывать.

Перевод Рагимы на новый сериализатор

Как я и писал ранее, я занялся первым реальным применением своей библиотеки сериализации. И это оказалось верным, не во всём библиотека оказалась готовой. Старая строилась полностью на «кастомной сериализации», где всё определяли и выполняли сами сериализуемые классы, своим произвольным кодом. Потому во многих из них было такого наворочено, что в новую модель никак, кроме реализации такой же самой «кастомной сериализации», не впихнешь. У меня неоднократно возникали соблазны все-таки её реализовать, но решил держаться до последнего. :) Не исключено, что когда-нибудь и реализую, но не сейчас.

В продолжение о библиотеке

Прошло чуть более двух недель с последнего моего поста. Это время я продолжал помаленьку дополнять все ту же библиотеку (что именно, я дописывал на странице проекта), размышлял о её популяризации, и конечно же, игрался в вов. :)
Возвращаясь к размышлениям о популяризации, мне очень хотелось (да и хочется) поделиться библиотекой, равно как для пользы других, так и для отзывов про неё, с целью узнать, что не так, что еще доделать, и т.д. Думал, то ли на хабр написать, то ли еще какие места поискать, пока так и не решился. Зато решил (и теперь считаю, что так гораздо правильнее будет) сперва самому испытать библиотеку в реальном деле, а не только в тестах. Так что, займусь прикручиванием её к Рагиме. Глядишь, в процессе выяснятся еще какие-либо проблемы.

Про библиотеку сериализации, и не только

Думаю, свой проект, начатый с октября, уже могу назвать более-менее завершенным и работоспособным, и потому объявить о нём. Это библиотека на C# для сериализации/десериализации данных в XML. Подробности постарался расписать на страничке проекта, здесь же расскажу о предыстории.

RSS-материал