Разработать библиотеку для преобразования любого объекта в строку, перечисляя значения публичных свойств и полей объекта.
Все должно гибко настраиваться. А именно:
- Исключить из сериализации свойства определенного типа
- Указать альтернативный способ сериализации для определенного типа
- Для числовых типов указать культуру
- Настроить сериализацию конкретного свойства
- Настроить обрезание значений строковых свойств
- Исключить из сериализации конкретное свойство
Также от решения ожидается:
- Поддержка коллекций (массивы, списки, словари*, ...)
- Корректная обработка циклических ссылок между объектами (не должны приводить к
StackOverflowException
)