From 1dea74d1e59bb9700b0adff097d4b1ecab0aabe4 Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Fri, 2 Jun 2023 00:08:56 -0500 Subject: [PATCH] Add debugger serialization and deserialization helpers --- UIX/Microsoft/Iris/Debug/Data/DebuggerMessageFrame.cs | 8 ++++++++ UIX/Microsoft/Iris/Debug/DebugRemoting.cs | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/UIX/Microsoft/Iris/Debug/Data/DebuggerMessageFrame.cs b/UIX/Microsoft/Iris/Debug/Data/DebuggerMessageFrame.cs index 16ca654..2a5f613 100644 --- a/UIX/Microsoft/Iris/Debug/Data/DebuggerMessageFrame.cs +++ b/UIX/Microsoft/Iris/Debug/Data/DebuggerMessageFrame.cs @@ -1,4 +1,6 @@ using System; +using System.IO; +using System.Runtime.Serialization; using System.Text; namespace Microsoft.Iris.Debug.Data; @@ -54,4 +56,10 @@ public class DebuggerMessageFrame } public string GetDataAsString(Encoding encoding = null) => (encoding ?? Encoding.UTF8).GetString(Data); + + public T DeserializeData(IFormatter formatter) + { + using MemoryStream stream = new(Data); + return (T)formatter.Deserialize(stream); + } } diff --git a/UIX/Microsoft/Iris/Debug/DebugRemoting.cs b/UIX/Microsoft/Iris/Debug/DebugRemoting.cs index 4a36bad..287cba0 100644 --- a/UIX/Microsoft/Iris/Debug/DebugRemoting.cs +++ b/UIX/Microsoft/Iris/Debug/DebugRemoting.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.IO; using System.Net.Sockets; using System.Runtime.Serialization; @@ -41,4 +40,11 @@ public static class DebugRemoting return null; } } + + internal static byte[] Serialize(this object obj, IFormatter formatter) + { + using MemoryStream dataStream = new(); + formatter.Serialize(dataStream, obj); + return dataStream.ToArray(); + } }