Add debugger serialization and deserialization helpers

This commit is contained in:
Yoshi Askharoun
2023-06-02 00:08:56 -05:00
parent 1ae6b92cf9
commit 1dea74d1e5
2 changed files with 15 additions and 1 deletions
@@ -1,4 +1,6 @@
using System; using System;
using System.IO;
using System.Runtime.Serialization;
using System.Text; using System.Text;
namespace Microsoft.Iris.Debug.Data; namespace Microsoft.Iris.Debug.Data;
@@ -54,4 +56,10 @@ public class DebuggerMessageFrame
} }
public string GetDataAsString(Encoding encoding = null) => (encoding ?? Encoding.UTF8).GetString(Data); public string GetDataAsString(Encoding encoding = null) => (encoding ?? Encoding.UTF8).GetString(Data);
public T DeserializeData<T>(IFormatter formatter)
{
using MemoryStream stream = new(Data);
return (T)formatter.Deserialize(stream);
}
} }
+7 -1
View File
@@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Net.Sockets; using System.Net.Sockets;
using System.Runtime.Serialization; using System.Runtime.Serialization;
@@ -41,4 +40,11 @@ public static class DebugRemoting
return null; return null;
} }
} }
internal static byte[] Serialize(this object obj, IFormatter formatter)
{
using MemoryStream dataStream = new();
formatter.Serialize(dataStream, obj);
return dataStream.ToArray();
}
} }