Mercurial > pub > ImplabNet
comparison Implab/Xml/SerializationHelpers.cs @ 229:5f7a3e1d32b9 v2
JsonXmlReader performance tuning
JsonScanner now operates strings and doesn't
parses number and literals.
Added SerializationHelpers to common serialize/deserialize operations
author | cin |
---|---|
date | Tue, 12 Sep 2017 19:07:42 +0300 |
parents | |
children | 3eaa9372c754 |
comparison
equal
deleted
inserted
replaced
228:6fa235c5a760 | 229:5f7a3e1d32b9 |
---|---|
1 using System; | |
2 using System.Collections.Generic; | |
3 using System.Linq; | |
4 using System.Text; | |
5 using System.Threading.Tasks; | |
6 using System.Xml; | |
7 using System.Xml.Linq; | |
8 | |
9 namespace Implab.Xml { | |
10 public static class SerializationHelpers { | |
11 public static string SerializeAsString<T>(T obj) { | |
12 return SerializersPool<T>.Instance.SerializeAsString(obj); | |
13 } | |
14 | |
15 public static void Serialize<T>(XmlWriter writer, T obj) { | |
16 SerializersPool<T>.Instance.Serialize(writer, obj); | |
17 } | |
18 | |
19 public static XmlDocument SerializeAsXmlDocument<T>(T obj) { | |
20 var doc = new XmlDocument(); | |
21 using (var writer = doc.CreateNavigator().AppendChild()) { | |
22 SerializersPool<T>.Instance.Serialize(writer, obj); | |
23 } | |
24 return doc; | |
25 } | |
26 | |
27 public static XDocument SerializeAsXDocument<T>(T obj) { | |
28 var doc = new XDocument(); | |
29 using (var writer = doc.CreateWriter()) { | |
30 SerializersPool<T>.Instance.Serialize(writer, obj); | |
31 } | |
32 return doc; | |
33 } | |
34 | |
35 public static T DeserializeFromString<T>(string data) { | |
36 return SerializersPool<T>.Instance.DeserializeFromString(data); | |
37 } | |
38 | |
39 public static T DeserializeFromXmlNode<T>(XmlNode node) { | |
40 Safe.ArgumentNotNull(node, nameof(node)); | |
41 using (var reader = node.CreateNavigator().ReadSubtree()) | |
42 return SerializersPool<T>.Instance.Deserialize(reader); | |
43 } | |
44 } | |
45 } |