wasSharpNET – Diff between revs 27 and 28
?pathlinks?
Rev 27 | Rev 28 | |||
---|---|---|---|---|
Line 7... | Line 7... | |||
7 | |
7 | |
|
8 | using System; |
8 | using System; |
|
9 | using System.Collections.Generic; |
9 | using System.Collections.Generic; |
|
10 | using System.IO; |
10 | using System.IO; |
|
- | 11 | using System.Linq; |
||
11 | using System.Linq; |
12 | using System.Text; |
|
- | 13 | using System.Threading; |
||
12 | using System.Threading; |
14 | using System.Threading.Tasks; |
|
13 | using System.Xml; |
15 | using System.Xml; |
|
14 | using System.Xml.Linq; |
16 | using System.Xml.Linq; |
|
Line 15... | Line 17... | |||
15 | using System.Xml.Serialization; |
17 | using System.Xml.Serialization; |
|
Line 92... | Line 94... | |||
92 | |
94 | |
|
93 | public static T Deserialize<T>(string XmlData, Type[] ExtraTypes) |
95 | public static T Deserialize<T>(string XmlData, Type[] ExtraTypes) |
|
94 | { |
96 | { |
|
95 | try |
97 | try |
|
96 | { |
98 | { |
|
97 | using (var memoryStream = new MemoryStream()) |
99 | using (var XmlReader = XDocument.Parse(XmlData).Root.CreateReader()) |
|
98 | { |
- | ||
99 | using (var streamWriter = new StreamWriter(memoryStream)) |
- | ||
100 | { |
- | ||
101 | streamWriter.Write(XmlData); |
- | ||
102 | streamWriter.Flush(); |
- | ||
103 | memoryStream.Position = 0; |
100 | { |
|
104 | return (T) GetSerializer<T>(ExtraTypes).Deserialize(memoryStream); |
- | ||
105 | } |
101 | return (T) GetSerializer<T>(ExtraTypes).Deserialize(XmlReader); |
|
106 | } |
102 | } |
|
107 | } |
103 | } |
|
108 | catch (Exception ex) |
104 | catch (Exception ex) |
|
109 | { |
105 | { |
|
Line 140... | Line 136... | |||
140 | public static XDocument Serialize<T>(T Object) |
136 | public static XDocument Serialize<T>(T Object) |
|
141 | { |
137 | { |
|
142 | return Serialize(Object, null); |
138 | return Serialize(Object, null); |
|
143 | } |
139 | } |
|
Line 144... | Line 140... | |||
144 | |
140 | |
|
145 | public static T Deserialize<T>(StreamReader streamReader) |
141 | public static async Task<T> Deserialize<T>(StreamReader streamReader) |
|
146 | { |
142 | { |
|
147 | return Deserialize<T>(streamReader.ReadToEnd(), null); |
143 | return Deserialize<T>(await streamReader.ReadToEndAsync(), null); |
|
Line 148... | Line 144... | |||
148 | } |
144 | } |
|
149 | |
145 | |
|
150 | public static T Deserialize<T>(Stream stream) |
146 | public static async Task<T> Deserialize<T>(Stream stream) |
|
151 | { |
147 | { |
|
152 | using (var memoryStream = new MemoryStream()) |
148 | using (var memoryStream = new MemoryStream()) |
|
153 | { |
149 | { |
|
154 | stream.CopyTo(memoryStream); |
150 | await stream.CopyToAsync(memoryStream); |
|
155 | memoryStream.Position = 0L; |
151 | memoryStream.Position = 0L; |
|
156 | using (var streamReader = new StreamReader(memoryStream)) |
152 | using (var streamReader = new StreamReader(memoryStream)) |
|
157 | { |
153 | { |
|
Line 173... | Line 169... | |||
173 | public static void Serialize<T>(StringWriter stringWriter, T value) |
169 | public static void Serialize<T>(StringWriter stringWriter, T value) |
|
174 | { |
170 | { |
|
175 | Serialize(value, null).Save(stringWriter); |
171 | Serialize(value, null).Save(stringWriter); |
|
176 | } |
172 | } |
|
Line 177... | Line 173... | |||
177 | |
173 | |
|
178 | public static T Deserialize<T>(TextReader reader) |
174 | public static async Task<T> Deserialize<T>(TextReader reader) |
|
179 | { |
175 | { |
|
180 | return Deserialize<T>(reader.ReadToEnd(), null); |
176 | return Deserialize<T>(await reader.ReadToEndAsync(), null); |
|
181 | } |
177 | } |
|
182 | } |
178 | } |
|
183 | } |
179 | } |