diff --git a/ICD.Common.Utils.Tests/Xml/IcdXmlConvertTest.cs b/ICD.Common.Utils.Tests/Xml/IcdXmlConvertTest.cs
new file mode 100644
index 0000000..0a9fa49
--- /dev/null
+++ b/ICD.Common.Utils.Tests/Xml/IcdXmlConvertTest.cs
@@ -0,0 +1,35 @@
+using System.Linq;
+using ICD.Common.Utils.Xml;
+using NUnit.Framework;
+
+namespace ICD.Common.Utils.Tests.Xml
+{
+ [TestFixture]
+ public sealed class IcdXmlConvertTest
+ {
+ [Test]
+ public void DeserializeArrayGenericTest()
+ {
+ const string xml = @"
+ 1
+ 2
+";
+
+ using (IcdXmlReader reader = new IcdXmlReader(xml))
+ {
+ // Read to the first element
+ reader.Read();
+
+ int[] values = IcdXmlConvert.DeserializeArray(reader).ToArray();
+
+ Assert.AreEqual(new[] {1, 2}, values);
+ }
+ }
+
+ [Test]
+ public void DeserializeArrayTest()
+ {
+ Assert.Inconclusive();
+ }
+ }
+}
diff --git a/ICD.Common.Utils/Xml/IcdXmlConvert.cs b/ICD.Common.Utils/Xml/IcdXmlConvert.cs
index 11f8034..5cc796a 100644
--- a/ICD.Common.Utils/Xml/IcdXmlConvert.cs
+++ b/ICD.Common.Utils/Xml/IcdXmlConvert.cs
@@ -1,5 +1,7 @@
using System;
+using System.Collections.Generic;
using System.Globalization;
+using System.Linq;
using System.Text;
using ICD.Common.Utils.IO;
#if SIMPLSHARP
@@ -112,6 +114,64 @@ namespace ICD.Common.Utils.Xml
return converter.ReadXml(reader);
}
+ ///
+ /// Deserializes the child elements as items in an array.
+ ///
+ ///
+ ///
+ ///
+ public static IEnumerable DeserializeArray(IcdXmlReader reader)
+ {
+ if (reader == null)
+ throw new ArgumentNullException("reader");
+
+ return DeserializeArray(typeof(T), reader).Cast();
+ }
+
+ ///
+ /// Deserializes the child elements as items in an array.
+ ///
+ ///
+ ///
+ ///
+ public static IEnumerable