Mercurial > pub > ImplabNet
view Implab/Xml/SerializationHelpers.cs @ 234:8dd666e6b6bf v2
Added implab nuget spec
author | cin |
---|---|
date | Thu, 05 Oct 2017 09:21:23 +0300 |
parents | 5f7a3e1d32b9 |
children | 3eaa9372c754 |
line wrap: on
line source
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; namespace Implab.Xml { public static class SerializationHelpers { public static string SerializeAsString<T>(T obj) { return SerializersPool<T>.Instance.SerializeAsString(obj); } public static void Serialize<T>(XmlWriter writer, T obj) { SerializersPool<T>.Instance.Serialize(writer, obj); } public static XmlDocument SerializeAsXmlDocument<T>(T obj) { var doc = new XmlDocument(); using (var writer = doc.CreateNavigator().AppendChild()) { SerializersPool<T>.Instance.Serialize(writer, obj); } return doc; } public static XDocument SerializeAsXDocument<T>(T obj) { var doc = new XDocument(); using (var writer = doc.CreateWriter()) { SerializersPool<T>.Instance.Serialize(writer, obj); } return doc; } public static T DeserializeFromString<T>(string data) { return SerializersPool<T>.Instance.DeserializeFromString(data); } public static T DeserializeFromXmlNode<T>(XmlNode node) { Safe.ArgumentNotNull(node, nameof(node)); using (var reader = node.CreateNavigator().ReadSubtree()) return SerializersPool<T>.Instance.Deserialize(reader); } } }