Code-Serialization:Xml序列化与Xml反序列化

ylbtech-Code-Serialization:Xml序列化与Xml反序列化
1.返回顶部

1、

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

namespace Framework.Core
{
    /// <summary>
    /// Xml序列化与反序列化
    /// </summary>
    public class XmlUtil
    {
        #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
    }

}

2、

2.返回顶部
3.返回顶部
4.返回顶部
5.返回顶部
6.返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/storebook/p/12681032.html

时间: 2024-10-11 11:10:16

Code-Serialization:Xml序列化与Xml反序列化的相关文章

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类 本节导读:本节主要介绍通过序列化接口IXmlSerializable实现XML序列化和反序列化,整理了XML基础操作及序列化的通用类(包括XML及节点的基础读写操作,XML到DataSet\DataTable互转换操作,XML序列化及反序列化通用方法等). 读前必备: A.类和类的实例 [.net 面向对象编程基础]  (9) 类和类的

C# XML序列化去掉XML默认的命名空间及声明头

去掉XML命名空间及声明头不影响反序列化, 直接上代码: // 序列化这个对象 int obj = 1; XmlSerializer serializer = new XmlSerializer(obj.GetType()); // 将对象序列化输出到文件 FileStream stream = new FileStream("hh.xml", FileMode.Create); XmlWriterSettings settings = new XmlWriterSettings();

XML序列化反序列化—常用类

public class XMLSerializer    {        #region (public) xml序列化        /// <summary>        /// xml序列化        /// </summary>        /// <param name="obj">obj类</param>        /// <returns>string字符串</returns>    

&lt;经验杂谈&gt;C#/.Net中xml的Serialization序列化与DeSerializetion反序列化

1.先讲概念:.Net Framework提供了对应的System.Xml.Seriazliation.XmlSerializer负责把对象序列化到XML,和从XML中反序列化为对象.Serializer的使用比较直观,需要多注意的是XML序列化相关的Attribute,怎么把这些attribute应用到我们的对象,以及对象公共属性上面去,生成满足预期格式的XML.  本文列出了最常用的方法和特性,涵盖日常大部分的转换工作,希望大家在工作中快速上手.为了给大家直观的印象,这里给出具体的使用代码,

C#实现接口xml序列化与反序列化

C#中接口无法被xml序列化,提示不支持.百度和bing也搜不到,只好自己动手写了 原理上肯定支持,.Net自己的xml序列化有一个IXmlSerializable接口. 自行实现该接口,并取得实现改接口的类,再进行自定义的序列化处理即可. using System.Collections; using System.Xml.Serialization; using System; using System.Xml; [XmlRoot("SerInterface"), Serializ

类的XML序列化(XML Serialization)

最近做的一个ASP.NET项目中,需要在一个页面中维护一个类的数组,在每次页面刷新的使其前一次的状态保持不变.开始错误的使用了static,导致了致命的共享错误.后来突然想起C#类能够使用XML序列化出来,然后保存在XML里或者保存在页面的一个隐藏表单里(稍后再比较这两种方法的优劣).下面来介绍这两个类序列化的应用.保存于XML中的序列化C#类 先声明那个需要保存的类如下: [Serializable] public class HalfHour { public string ibtnHalf

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指定属性序

Json/XML序列化和反序列化

1.json序列化和反序列化 序列化是将对象状态转换为可保持或传输的格式的过程; 反序列化,它将流转换为对象; 1)Json.Net 推荐使用Json.Net类库,需要引入的命名空间; 序列化:JsonConvert.SerializeObject 反序列化:JsonConvert.DeserializeObject 2)使用JavaScriptSerializer类 使用JavaScriptSerializer方式需要引入的命名空间,这个在程序集System.Web.Extensions.dl