Небольшой класс для упрощения упаковки/распаковки - наследуем от этого класса целевой объект и через расширение вызываем методы упаковки/распаковки:
/// <summary>
/// Класс [де]сериализуемый MemoryPack
/// <br />Необходим для добавления всем наследуемым классам метода сериализации через расширение
/// <br />Наследование данного метода не работает из-за каста в целевой класс
/// </summary>
public class Packable { }
/// <summary>
/// Расширение для [де]сериализуемых классов MemoryPack
/// </summary>
public static class PackableExtension
{
/// <summary>
/// Сериализовать класс в массив байтов
/// </summary>
/// <typeparam name="T">Целевой класс</typeparam>
/// <param name="data">Объект целевого класса</param>
/// <returns></returns>
public static byte[] Pack<T>(this T data) where T : Packable
=> MemoryPackSerializer.Serialize(data);
/// <summary>
/// Десериализовать класс из массива байтов
/// </summary>
/// <typeparam name="T">Целевой класс</typeparam>
/// <param name="data">Массив байт</param>
/// <returns></returns>
public static T Unpack<T>(this byte[] data) where T : Packable
=> MemoryPackSerializer.Deserialize<T>(data);
}