/// <summary> /// Deserializes the object represented by <paramref name="toDeserialize"/> using data contract serialization. /// </summary> /// <param name="toDeserialize">String representation of the serialized object to be data contract-deserialized.</param> /// <typeparam name="T">Type to be deserialized.</typeparam> /// <returns>The deserialized object.</returns> public T Deserialize <T>(string toDeserialize) { using (StringReader sr = new StringReader(toDeserialize)) { XmlReader xr = XmlReader.Create(sr); try { var serializer = new DataContractSerializer(typeof(T)); T deserialized = (T)serializer.ReadObject(xr); return(deserialized); } finally { xr.Finalize(); sr.Finalize(); } } }