public byte[] Serialize <T>(T obj, int minBufferSize = 4096) { byte[] buffer = JT809ArrayPool.Rent(minBufferSize); try { JT809MessagePackWriter jT809MessagePackWriter = new JT809MessagePackWriter(buffer); JT809MessagePackFormatterExtensions.GetFormatter <T>().Serialize(ref jT809MessagePackWriter, obj, jT809Config); return(jT809MessagePackWriter.FlushAndGetEncodingArray()); } finally { JT809ArrayPool.Return(buffer); } }
public T Deserialize <T>(ReadOnlySpan <byte> bytes, int minBufferSize = 4096) { byte[] buffer = JT809ArrayPool.Rent(minBufferSize); try { JT809MessagePackReader jT809MessagePackReader = new JT809MessagePackReader(bytes); if (CheckPackageType(typeof(T))) { jT809MessagePackReader.Decode(buffer); } return(JT809MessagePackFormatterExtensions.GetFormatter <T>().Deserialize(ref jT809MessagePackReader, jT809Config)); } finally { JT809ArrayPool.Return(buffer); } }