Files
Web_IoTBase_Sever_Prod/Common/Cache/MyValueSerializer.cs
2025-12-11 14:04:39 +08:00

33 lines
953 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.PortableExecutable;
using System.Text;
using System.Threading.Tasks;
using FASTER.core;
using System.Xml.Linq;
using CommonEntity.CacheEntity;
using MemoryPack;
namespace Common.Cache
{
public class MyValueSerializer<T> : BinaryObjectSerializer<T>
{
public override void Serialize(ref T value)
{
//writer.Write(IPAddress.HostToNetworkOrder(Q.Length)); // 4字节长度头
var Q = MemoryPackSerializer.Serialize(value);
writer.Write(Q.Length); // 4字节长度头
writer.Write(Q);
}
public override void Deserialize(out T value)
{
int length = reader.ReadInt32(); // 读长度头
byte[] buffer = reader.ReadBytes(length); // 读数据体
value = MemoryPackSerializer.Deserialize<T>(buffer); // 反序列化
}
}
}