Вот экранированный текст: MemoryPack поддерживает следующие атрибуты: 1. **\[MemoryPackable\]** — Основной атрибут, который указывает, что класс или структура могут быть сериализованы с использованием MemoryPack. 2. **\[MemoryPackIgnore\]** — Исключает поле или свойство из сериализации. 3. **\[MemoryPackInclude\]** — Включает приватное поле или свойство в сериализацию. 4. **\[MemoryPackOrder\]** — Указывает порядок сериализации членов класса или структуры. 5. **\[MemoryPackConstructor\]** — Указывает, какой конструктор использовать при десериализации. 6. **\[MemoryPackOnSerializing\]** — Метод, вызываемый перед сериализацией. 7. **\[MemoryPackOnSerialized\]** — Метод, вызываемый после сериализации. 8. **\[MemoryPackOnDeserializing\]** — Метод, вызываемый перед десериализацией. 9. **\[MemoryPackOnDeserialized\]** — Метод, вызываемый после десериализации. 10. **\[MemoryPackUnion\]** — Используется для указания полиморфных типов при сериализации интерфейсов или абстрактных классов. 11. **\[MemoryPackAllowSerialize\]** — Разрешает сериализацию типа, который обычно не поддерживается. 12. **\[SuppressDefaultInitialization\]** — Запрещает инициализацию полей значениями по умолчанию при десериализации. 13. **\[MemoryPackCustomFormatter\]** — Указывает пользовательский форматтер для сериализации конкретного поля или свойства. Эти атрибуты позволяют гибко управлять процессом сериализации и десериализации данных с использованием MemoryPack, обеспечивая как высокую производительность, так и возможность кастомизации.