MemoryWrap.cs 778 B

12345678910111213141516171819202122232425262728293031
  1. using MemoryPack;
  2. namespace NetCore.Protocol.MemoryPack
  3. {
  4. /// <summary>
  5. ///
  6. /// </summary>
  7. /// <typeparam name="T">Serialize</typeparam>
  8. /// <typeparam name="K">Deserialize</typeparam>
  9. public class MemoryWrap<T, K> : IProtocol where T : class
  10. {
  11. public object Deserialize(byte[] data)
  12. {
  13. if (data == null || data.Length < 2)
  14. {
  15. return data;
  16. }
  17. K serialize = MemoryPackSerializer.Deserialize<K>(data);
  18. return serialize;
  19. }
  20. public byte[] Serialize(object serializeObject)
  21. {
  22. T serialize = serializeObject as T;
  23. byte[] data = MemoryPackSerializer.Serialize(serialize);
  24. return data;
  25. }
  26. }
  27. }