Типы данных
Поддерживаемые типы данных и примеры использования
Поддерживаемые типы данных:
Примитивные типы:
bool,byte,sbyte,char,decimal,double,float,int,uint,long,ulong,short,ushort
Специальные типы:
stringGuidDateTimeTimeSpan
Перечисления (enum):
Любые пользовательские
enum
Nullable-типы:
int?,bool?,DateTime?и т.д.
Коллекции:
Массивы:
int[],string[]и т.д.List<T>,IList<T>,ICollection<T>,IEnumerable<T>HashSet<T>,SortedSet<T>Любые другие коллекции, реализующие
IEnumerable
Словари:
Dictionary<TKey, TValue>,IDictionary<TKey, TValue>,IDictionary
Кортежи (ValueTuple):
(int, string),ValueTuple<int, string>(int Id, string Name)- именованные кортежи
Пользовательские объекты (DTO):
Любые классы или структуры с публичными свойствами
Примеры использования:
1. Примитивные типы и строки
2. Дата и время
3. Перечисления
4. Nullable-типы
5. Массивы и списки
6. Словари
7. Кортежи
8. Пользовательские объекты
9. Вложенные объекты
10. Сложные коллекции
Особенности работы:
Порядок свойств:
Свойства сериализуются в алфавитном порядке
Кортежи сериализуются по порядку полей
Обработка null:
Строки:
nullдлина -1Ссылочные типы: записывается флаг наличия значения
Nullable<T>: отдельный флаг
Ограничения:
Приватные поля не поддерживаются
Циклические ссылки не обрабатываются
Интерфейсы требуют явного указания типа при десериализации
Last updated
Was this helpful?