XML 序列化与反序列化

XML序列化与反序列化

1、将一个类转化为XML文件

        /// <summary>
        /// 对象序列化成XML文件
        /// </summary>
        /// <param name="type">对象类型</param>
        /// <param name="obj">对象</param>
        /// <param name="fileName">序列化的XML文件路径</param>
        public static void Serialize(Type type, object obj, string fileName)
        {
            if (File.Exists(fileName))
                File.Delete(fileName);
            //创建流
            using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                //创建XML序列化器,需要指定对象的类型
                var serializer = new XmlSerializer(type);
                //序列化执行
                serializer.Serialize(fs, obj);
            }
        }

序列时,可以对类、属性设置标记,选择哪些属性序列化、序列化字段别名、设置属性是否属于节点内属性还是以子节点呈现等等。

2、将XML反序列为指定类对象

        /// <summary>
        /// XML文件反序列化成对象文件
        /// </summary>
        /// <param name="type">对象类型</param>
        /// <param name="fileName">反序列化的XML文件路径</param>
        /// <returns>对象</returns>
        public static object DeSerialize(Type type, string fileName)
        {
            if (!File.Exists(fileName))
            {
                MessageBox.Show(fileName + " File Doesn‘t Exist!");
            }

            object obj;
            using (var fs = new FileStream(fileName, FileMode.Open))
            {
                var serializer = new XmlSerializer(type);
                obj = serializer.Deserialize(fs);
            }

            return obj;
        }
时间: 2024-10-09 23:45:34

XML 序列化与反序列化的相关文章

Note4:XML序列化和反序列化

XML序列化和反序列化 待总结!

c# XML序列化与反序列化 属性字段标识

序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAttribute("AGE")] public int Age { set; get; } } [XmlRoot("Root")] public class Student : People { [XmlElement("CLASS")] public

.NET XML序列化与反序列化

闲着没事,写了两个通用的XML序列化与反序列化的方法. 贴出来当作笔记吧! /// <summary> /// XML序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="className"></param> /// <returns></returns> public stat

C#操作XML序列化与反序列化

1 public class XmlSerializerHelper 2 { 3 /// <summary> 4 /// 从XML文件中反序列化读取对象 5 /// </summary> 6 /// <typeparam name="T"></typeparam> 7 /// <param name="filePath"></param> 8 /// <param name="r

XML 序列化 二进制 反序列化 回来

InitializeComponent(); List<WswModel> ListModel = new List<WswModel>(); string FilePath = @"../../XML/UserAddDelectUpdate.xml"; string FilePathBin = @"wsw.wsw"; XmlDocument XmlDoc = new XmlDocument(); BinaryFormatter binary

Xml 序列化 Json 反序列化

#region 全局变量 /// <summary> /// 全局变量 /// </summary> XmlDocument XmlDoc = new XmlDocument(); #endregion #region 加载 public ParseJosn() { InitializeComponent(); ParseJson(XmlPaerseJson()); } #endregion #region Json 转换Model /// <summary> ///

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

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

Xml序列化、反序列化帮助类

之前从网络上找了一个Xml处理帮助类,并整理了一下,这个帮助类针对Object类型进行序列化和反序列化,而不需要提前定义Xml的结构,把它放在这儿供以后使用 1 /// <summary> 2 /// 功能:Xml序列化.反序列化帮助类 3 /// 说明: 4 /// 创建人: 5 /// 创建时间:2014年3月13日 6 /// </summary> 7 public static class XmlHelper 8 { 9 /// <summary> 10 ///

Json/XML序列化和反序列化

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