zoukankan      html  css  js  c++  java
  • C# XmlSerializer类

    代码
    public static class XmlSerializer<T>
    {
    public static string Serialize(T o)
    {
    XmlSerializer xmlSerializer
    = new XmlSerializer(typeof(T));
    using (MemoryStream stream = new MemoryStream())
    {
    xmlSerializer.Serialize(stream, o);
    return Encoding.ASCII.GetString(stream.ToArray());
    }
    }

    public static T DeSerialize(string xmlString)
    {
    XmlSerializer xmlSerializer
    = new XmlSerializer(typeof(T));
    using (MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(xmlString)))
    {
    return (T)xmlSerializer.Deserialize(stream);
    }
    }

    public static string Serialize(T obj, string xsdNs, string xsiNs)
    {
    XmlSerializerNamespaces ns
    = new XmlSerializerNamespaces();
    ns.Add(
    "xsd", xsdNs);
    ns.Add(
    "xsi", xsiNs);
    XmlSerializer serializer
    = new XmlSerializer(obj.GetType());
    StringBuilder sb
    = new StringBuilder();
    using (TextWriter writer = new StringWriter(sb))
    {
    serializer.Serialize(writer, obj, ns);
    return sb.Replace("utf-16", "utf-8").ToString();
    }
    }

    public static T DeSerialize(ref string xmlText)
    {
    XmlSerializer serializer
    = new XmlSerializer(typeof(T));
    using (TextReader reader = new StringReader(xmlText))
    {
    return (T)serializer.Deserialize(reader);
    }
    }
    }

    SoapSerialize
    public static byte[] SoapSerialize(object obj)
    {
    MemoryStream stream
    = new MemoryStream();
    new SoapFormatter().Serialize(stream, obj);
    stream.SetLength(stream.Position);
    return stream.ToArray();
    }

    public static object SoapDeserialize(byte[] data)
    {
    MemoryStream stream
    = new MemoryStream();
    stream.Write(data,
    0, data.Length);
    stream.Position
    = 0L;
    return new SoapFormatter().Deserialize(stream);
    }

  • 相关阅读:
    yii2框架安装
    RabbitMq简单应用
    PHP扩展开发--编写一个helloWorld扩展
    node 笔记整理
    js 笔记整理
    JavaScript event loop事件循环 macrotask与microtask
    移动端 缩放插件备份
    vue 笔记备份
    echart 打开新世界的大门
    canvas 笔记整理
  • 原文地址:https://www.cnblogs.com/Googler/p/1757933.html
Copyright © 2011-2022 走看看