zoukankan      html  css  js  c++  java
  • XmlExtensions帮助类

    public static class XmlExtensions
    {
    static Lazy<XmlWriterSettings> _settings = new Lazy<XmlWriterSettings>(() =>
    {
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.NewLineChars = " ";
    settings.Encoding = Encoding.UTF8;
    settings.IndentChars = " ";
    return settings;
    });

    static Lazy<XmlSerializerNamespaces> _ns = new Lazy<XmlSerializerNamespaces>(() =>
    {
    XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
    ns.Add("", "");
    return ns;
    });

    public static string ToXml(this object obj)
    {
    string result = null;
    using (var stream = new MemoryStream())
    {
    XmlSerializer serializer = new XmlSerializer(obj.GetType());
    using (var writer = XmlWriter.Create(stream, _settings.Value))
    {
    serializer.Serialize(writer, obj, _ns.Value);
    }
    using (var reader = new StreamReader(stream, Encoding.UTF8))
    {
    stream.Position = 0;
    result = reader.ReadToEnd();
    }
    }
    return result;
    }

    /// <summary>
    /// 反序列化XML为类实例
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="xmlObj"></param>
    /// <returns></returns>
    public static T DeserializeXML<T>(string xmlObj)
    {
    XmlSerializer serializer = new XmlSerializer(typeof(T));
    using (StringReader reader = new StringReader(xmlObj))
    {
    return (T)serializer.Deserialize(reader);
    }
    }

    /// <summary>
    /// 序列化类实例为XML
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="obj"></param>
    /// <returns></returns>
    public static string SerializeXML<T>(T obj)
    {
    using (StringWriter writer = new StringWriter())
    {
    new XmlSerializer(obj.GetType()).Serialize((TextWriter)writer, obj);
    return writer.ToString();
    }
    }

    /// <summary>
    /// 将XML数据转换成数据集
    /// </summary>
    /// <param name="url">包含XML数据的文件的 URL</param>
    public static DataSet XMLToDataSet(string url)
    {
    XmlTextReader reader = null;
    DataSet dataSet = new DataSet();
    try
    {
    reader = new XmlTextReader(url);
    dataSet.ReadXml(reader);
    }
    catch (Exception ex)
    {
    ex.Source += string.Format(".{0}", url);
    }
    finally
    {
    if (reader != null)
    {
    reader.Close();
    }
    }
    return dataSet;
    }
    }

  • 相关阅读:
    为什么说http协议是无状态协议
    LR中获取当前系统时间的方法
    在Ubuntu Server下配置LAMP环境
    服务器性能监控
    性能测试:过程和重要指标
    LR中线程和进程的区别
    怎样获取Windows平台下SQL server性能计数器值
    用Excel创建SQL server性能报告
    Windows下部署Appium教程(Android App自动化测试框架搭建)
    性能测试指标
  • 原文地址:https://www.cnblogs.com/xiaohouye/p/11455003.html
Copyright © 2011-2022 走看看