/Serialization/XmlSerializerCache.cs |
@@ -9,7 +9,9 @@ |
using System.Collections.Generic; |
using System.IO; |
using System.Linq; |
using System.Text; |
using System.Threading; |
using System.Threading.Tasks; |
using System.Xml; |
using System.Xml.Linq; |
using System.Xml.Serialization; |
@@ -94,17 +96,11 @@ |
{ |
try |
{ |
using (var memoryStream = new MemoryStream()) |
using (var XmlReader = XDocument.Parse(XmlData).Root.CreateReader()) |
{ |
using (var streamWriter = new StreamWriter(memoryStream)) |
{ |
streamWriter.Write(XmlData); |
streamWriter.Flush(); |
memoryStream.Position = 0; |
return (T) GetSerializer<T>(ExtraTypes).Deserialize(memoryStream); |
return (T) GetSerializer<T>(ExtraTypes).Deserialize(XmlReader); |
} |
} |
} |
catch (Exception ex) |
{ |
throw new Exception("Could not deserialize to " + typeof(T).Name, ex); |
@@ -142,16 +138,16 @@ |
return Serialize(Object, null); |
} |
|
public static T Deserialize<T>(StreamReader streamReader) |
public static async Task<T> Deserialize<T>(StreamReader streamReader) |
{ |
return Deserialize<T>(streamReader.ReadToEnd(), null); |
return Deserialize<T>(await streamReader.ReadToEndAsync(), null); |
} |
|
public static T Deserialize<T>(Stream stream) |
public static async Task<T> Deserialize<T>(Stream stream) |
{ |
using (var memoryStream = new MemoryStream()) |
{ |
stream.CopyTo(memoryStream); |
await stream.CopyToAsync(memoryStream); |
memoryStream.Position = 0L; |
using (var streamReader = new StreamReader(memoryStream)) |
{ |
@@ -175,9 +171,9 @@ |
Serialize(value, null).Save(stringWriter); |
} |
|
public static T Deserialize<T>(TextReader reader) |
public static async Task<T> Deserialize<T>(TextReader reader) |
{ |
return Deserialize<T>(reader.ReadToEnd(), null); |
return Deserialize<T>(await reader.ReadToEndAsync(), null); |
} |
} |
} |