public static object ReadSyncObject(ByteReader data, SyncType syncType) { SyncLogger log = null; if (data is LoggingByteReader logger) { log = logger.log; log.Enter(syncType.type.FullName); } try { object obj = ReadSyncObjectInternal(data, syncType); log?.AppendToCurrentName($": {obj}"); return(obj); } finally { log?.Exit(); } }
private static void LogXML(SyncLogger log, byte[] xmlData) { if (log == null) { return; } var reader = XmlReader.Create(new MemoryStream(xmlData)); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { string name = reader.Name; if (reader.GetAttribute("IsNull") == "True") { name += " (IsNull)"; } if (reader.IsEmptyElement) { log.Node(name); } else { log.Enter(name); } } else if (reader.NodeType == XmlNodeType.EndElement) { log.Exit(); } else if (reader.NodeType == XmlNodeType.Text) { log.AppendToCurrentName($": {reader.Value}"); } } }