diff --git a/ICD.Common.Utils/Xml/IcdXmlConvert.cs b/ICD.Common.Utils/Xml/IcdXmlConvert.cs
index 08eed47..eda85b7 100644
--- a/ICD.Common.Utils/Xml/IcdXmlConvert.cs
+++ b/ICD.Common.Utils/Xml/IcdXmlConvert.cs
@@ -41,7 +41,7 @@ namespace ICD.Common.Utils.Xml
///
///
///
- public static object DeserializeObject(string xml)
+ public static T DeserializeObject(string xml)
{
return (T)DeserializeObject(typeof(T), xml);
}
@@ -57,10 +57,41 @@ namespace ICD.Common.Utils.Xml
if (type == null)
throw new ArgumentNullException("type");
- IXmlConverter converter = XmlConverterAttribute.GetConverterForInstance(type);
-
using (IcdXmlReader reader = new IcdXmlReader(xml))
- return converter.ReadXml(reader);
+ return DeserializeObject(type, reader);
+ }
+
+ ///
+ /// Deserializes the current node to an instance of the given type.
+ ///
+ ///
+ ///
+ ///
+ public static T DeserializeObject(IcdXmlReader reader)
+ {
+ if (reader == null)
+ throw new ArgumentNullException("reader");
+
+ return (T)DeserializeObject(typeof(T), reader);
+ }
+
+ ///
+ /// Deserializes the current node to an instance of the given type.
+ ///
+ ///
+ ///
+ ///
+ public static object DeserializeObject(Type type, IcdXmlReader reader)
+ {
+ if (type == null)
+ throw new ArgumentNullException("type");
+
+ if (reader == null)
+ throw new ArgumentNullException("reader");
+
+ IXmlConverter converter = XmlConverterAttribute.GetConverterForType(type);
+
+ return converter.ReadXml(reader);
}
public static string ToString(int value)