public static object Deserialize(this System.Net.Http.Formatting.MediaTypeFormatter formatter, Type type, string value)
        {
            if (value == null)
            {
                return(null);
            }
            var bytes = formatter.SupportedEncodings.First().GetBytes(value.Trim('\0'));
            var ms    = new System.IO.MemoryStream(bytes);
            var task  = formatter.ReadFromStreamAsync(type, ms, null, null);

            return(task.Result);
        }
        private T Deserialize <T>(System.Net.Http.Formatting.MediaTypeFormatter formatter,
                                  T value, string str, MediaTypeHeaderValue mediaType) where T : class
        {
            Stream       stream  = new MemoryStream();
            StreamWriter writer  = new StreamWriter(stream);
            HttpContent  content = new StreamContent(stream);

            content.Headers.ContentType = mediaType;
            writer.Write(str);
            writer.Flush();
            stream.Position = 0;
            return(formatter.ReadFromStreamAsync(typeof(T), stream, content, logFormatter).Result as T);
        }