From c80fea4db9925ad3db92db561497bee8b50470a0 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Sat, 21 Oct 2017 21:36:42 -0400 Subject: [PATCH] Write List/Dict xml methods provide writer to callback --- ICD.Common.Utils/Xml/XmlUtils.cs | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/ICD.Common.Utils/Xml/XmlUtils.cs b/ICD.Common.Utils/Xml/XmlUtils.cs index fa82173..72c2a0a 100644 --- a/ICD.Common.Utils/Xml/XmlUtils.cs +++ b/ICD.Common.Utils/Xml/XmlUtils.cs @@ -881,8 +881,8 @@ namespace ICD.Common.Utils.Xml if (dict == null) throw new ArgumentNullException("dict"); - Action writeKey = key => writer.WriteElementString(keyElement, IcdXmlConvert.ToString(key)); - Action writeValue = value => writer.WriteElementString(valueElement, IcdXmlConvert.ToString(value)); + Action writeKey = (w, k) => w.WriteElementString(keyElement, IcdXmlConvert.ToString(k)); + Action writeValue = (w, v) => w.WriteElementString(valueElement, IcdXmlConvert.ToString(v)); WriteDictToXml(writer, dict, rootElement, childElement, writeKey, writeValue); } @@ -899,8 +899,9 @@ namespace ICD.Common.Utils.Xml /// /// public static void WriteDictToXml(IcdXmlTextWriter writer, IEnumerable> dict, - string rootElement, string childElement, Action writeKey, - Action writeValue) + string rootElement, string childElement, + Action writeKey, + Action writeValue) { if (writer == null) throw new ArgumentNullException("writer"); @@ -914,15 +915,15 @@ namespace ICD.Common.Utils.Xml if (writeValue == null) throw new ArgumentNullException("writeValue"); - Action> writeItem = - pair => + Action> writeItem = + (w, p) => { - writer.WriteStartElement(childElement); + w.WriteStartElement(childElement); { - writeKey(pair.Key); - writeValue(pair.Value); + writeKey(w, p.Key); + writeValue(w, p.Value); } - writer.WriteEndElement(); + w.WriteEndElement(); }; WriteListToXml(writer, dict, rootElement, writeItem); @@ -945,7 +946,7 @@ namespace ICD.Common.Utils.Xml if (list == null) throw new ArgumentNullException("list"); - Action writeItem = child => writer.WriteElementString(childElement, IcdXmlConvert.ToString(child)); + Action writeItem = (w, c) => w.WriteElementString(childElement, IcdXmlConvert.ToString(c)); WriteListToXml(writer, list, listElement, writeItem); } @@ -958,7 +959,7 @@ namespace ICD.Common.Utils.Xml /// /// public static void WriteListToXml(IcdXmlTextWriter writer, IEnumerable list, string listElement, - Action writeItem) + Action writeItem) { if (writer == null) throw new ArgumentNullException("writer"); @@ -972,7 +973,7 @@ namespace ICD.Common.Utils.Xml writer.WriteStartElement(listElement); { foreach (T child in list) - writeItem(child); + writeItem(writer, child); } writer.WriteEndElement(); }