Test projects are working.
This commit is contained in:
38
NamedPipes/PipeSerializer.cs
Normal file
38
NamedPipes/PipeSerializer.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using MessagePack;
|
||||
using PipeMethodCalls;
|
||||
|
||||
namespace NamedPipes
|
||||
{
|
||||
public class PipeSerializer : IPipeSerializer
|
||||
{
|
||||
public object? Deserialize(byte[] data, Type type)
|
||||
{
|
||||
if (data.Length == 0) return null;
|
||||
//Log.Trace("PipeSerializer.Deserialize: type = " + type + " , data.length = " + data.Length);
|
||||
var obj = MessagePackSerializer.Deserialize(type, data, MessagePack.Resolvers.ContractlessStandardResolver.Options);
|
||||
//if (obj is DebugObject debugObject)
|
||||
//{
|
||||
// var length = debugObject.Data?.Length ?? 0;
|
||||
// var debugObjectType = debugObject.Type ?? "null";
|
||||
// Log.Trace("PipeSerializer.Deserialize: debugObject.Type = " + debugObjectType + " , debugObject.Data.Length = " + length);
|
||||
//}
|
||||
return obj;
|
||||
}
|
||||
|
||||
public byte[] Serialize(object o)
|
||||
{
|
||||
if (o.GetType().FullName == "System.Threading.Tasks.VoidTaskResult") return [];
|
||||
//if (o is DebugObject debugObject)
|
||||
//{
|
||||
// var length = debugObject.Data?.Length ?? 0;
|
||||
// Log.Trace("PipeSerializer.Deserialize: debugObject.Type = " + debugObject.Type + " , debugObject.Data.Length = " + length);
|
||||
//}
|
||||
|
||||
var bytearray = MessagePackSerializer.Serialize(o.GetType(), o, MessagePack.Resolvers.ContractlessStandardResolver.Options);
|
||||
//var xxx = Deserialize(bytearray, o.GetType());
|
||||
//Log.Trace("PipeSerializer.Serialize: type = " + o.GetType() + " , bytearray.length = " + bytearray.Length);
|
||||
return bytearray;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user