33 lines
953 B
C#
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); // 反序列化
|
|
}
|
|
}
|
|
}
|