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);
    }

  • 相关阅读:
    字体辉光效果
    C# 读写 Photoshop PSD文件 操作类
    SQL Server日期时间格式转换字符串详解
    用DataTable填充实体类List
    C#控件的闪烁问题解决方法总结
    .NET Framework的属性类对控件的支持功能
    Aspose破解版本dll
    整理的C#屏幕截图,控件截图程序
    C#绘制渐变背景
    VS2010编译的时候出现fatal error LNK1146: 没有用选项“/out:”指定的参数
  • 原文地址:https://www.cnblogs.com/Googler/p/1757933.html
Copyright © 2011-2022 走看看