/// <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();
         }
     }
 }