C# 对象 序列化 XML

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data;
using System.Xml;
using System.Xml.Serialization;

/// <summary>
/// Xml序列化与反序列化
/// </summary>
public class XmlHelp
{
    #region 反序列化
    /// <summary>
    /// 反序列化
    /// </summary>
    /// <param name="type">类型</param>
    /// <param name="xml">XML字符串</param>
    /// <returns></returns>
    public static object Deserialize(Type type, string xml)
    {
        try
        {
            using (StringReader sr = new StringReader(xml))
            {
                XmlSerializer xmldes = new XmlSerializer(type);
                return xmldes.Deserialize(sr);
            }
        }
        catch (Exception e)
        {

            return null;
        }
    }
    /// <summary>
    /// 反序列化
    /// </summary>
    /// <param name="type"></param>
    /// <param name="xml"></param>
    /// <returns></returns>
    public static object Deserialize(Type type, Stream stream)
    {
        XmlSerializer xmldes = new XmlSerializer(type);
        return xmldes.Deserialize(stream);
    }
    #endregion

    #region 序列化
    /// <summary>
    /// 序列化
    /// </summary>
    /// <param name="type">类型</param>
    /// <param name="obj">对象</param>
    /// <returns></returns>
    public static string Serializer(Type type, object obj)
    {
        MemoryStream Stream = new MemoryStream();
        XmlSerializer xml = new XmlSerializer(type);
        try
        {
            //序列化对象
            xml.Serialize(Stream, obj);
        }
        catch (InvalidOperationException)
        {
            throw;
        }
        Stream.Position = 0;
        StreamReader sr = new StreamReader(Stream);
        string str = sr.ReadToEnd();

        sr.Dispose();
        Stream.Dispose();

        return str;
    }

    #endregion
}
时间: 2024-10-10 13:17:31

C# 对象 序列化 XML的相关文章

对象序列化XML

/// <summary>/// 对象序列化XML/// </summary>/// <param name="type">类型</param>/// <param name="obj">对象</param>/// <returns></returns>public static string Serializer<T>(T obj){MemoryStream

对象和XML文件的转换

很多时候,我们开发程序都需要使用到对象的XML序列化和反序列化,对象的XML序列化和反序列化,既可以使用XML对象(XmlDocument)进行操作,也可以使用XmlSerializer进行操作,两个各有优点,就是操作性而已,我倾向于使用后者来操作XML. 本文介绍三种方式操作XML,普通的XmlDocument的API操作,方便的XmlSerializer对象序列化操作,加密XML对象序列化操作. 1.普通的XML对象操作,利用XML对象(XmlDocument).       一个典型的利用

类对象序列化操作类

记录下类对象序列化的类以便以后用到 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Xml; using System.Xml.Serialization; namespace TTOCR.Common {

C# XML对象序列化、反序列化 - PEPE YU

http://www.tuicool.com/articles/IjE7ban XML 序列化:可以将对象序列化为XML文件,或者将XML文件反序列化为对象还有种方法 使用LINQ TO XML或者反序列化的方法从XML中读取数据. 最简单的方法就是 .net framework提供的,只需要定义好xml数据格式,定义好对象即可. 1.调用方法: using RenosData.RDBao.EvidenceUploadModel.Models; using RenosData.RDBao.Evi

Android中序列化对象到XMl 和 XML反序列化为对象

package com.example.xmloperation; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; imp

对象和XML之间的序列化和反序列化

JAXB主要用来实现对象和XML之间的序列化和反序列化 用于序列化的XmlUtil package cn.lzrabbit; import java.io.StringReader; import java.io.StringWriter; import javax.xml.bind.*; public class XmlUtil { public static String toXML(Object obj) { try { JAXBContext context = JAXBContext.

.NET调用外部接口将得到的List数据,并使用XmlSerializer序列化List对象成XML格式

BidOpeningData.BidSupervisionSoapClient client = new BidOpeningData.BidSupervisionSoapClient(); Dictionary<string, string> param = new Dictionary<string, string>(); param.Add(CommonParam.ConnKey, DBConnHelper.GetConnectionKey(DBConnHelper.Busi

XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对象如果需要传递给其他系统使用:或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化. 范围:本文只介绍xml序列化,其实序列化可以是二进制的序列化,也可以是其他格式的序列化. 看一段最简单的Xml序列化代码 1 2 3 4 5 6 7 8 9 10 11 12 class Prog

C# XmlSerializer 对象的Xml序列化和反序列化

.Net程序执行时,对象都驻留在内存中:内存中的对象如果需要传递给其他系统使用:或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化. System.Xml.Serialization命名空间中有一系列的特性类,用来控制复杂类型序列化.例如XmlElementAttribute.XmlAttributeAttribute.XmlArrayAttribute.XmlArrayItemAttribute.XmlRootAttribute等等. 可以使用XmlElement指定属性序