Сериализация с DataContractSerializer
2 октября 2009
public static class Serializer
{
public static string Serialize(object obj, Type type)
{
DataContractSerializer serializer = new DataContractSerializer(type);
string result = string.Empty;
using (MemoryStream stream = new MemoryStream())
{
serializer.WriteObject(stream, obj);
stream.Seek(0, SeekOrigin.Begin);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
result = Encoding.Default.GetString(buffer);
}
return result;
}
public static object Deserialize(string xml, Type type)
{
DataContractSerializer serializer = new DataContractSerializer(type);
object result = new object();
using (MemoryStream stream = new MemoryStream())
{
byte[] buffer = Encoding.Default.GetBytes(xml);
stream.Write(buffer, 0, buffer.Length);
stream.Seek(0, SeekOrigin.Begin);
result = serializer.ReadObject(stream);
}
return result;
}
public static string GetType(string xml)
{
try
{
string name = System.Xml.Linq.XDocument.Parse(xml).Root.Name.ToString();
return name.Substring(name.IndexOf("}") + 1, name.Length - name.IndexOf("}") - 1);
}
catch { return string.Empty; }
}
}
Entry Filed under: Articles. Метки: .net, C#, contract, data, serialize, serializer, xml.
Оставить комментарий
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed