序列化和反序列化XML应用程序设置类

xml|程序

 1        public class ApplicationSettings
  2        {
  3
  4            private bool appSettingsChanged;
  5            // 用于存储应用程序设置的变量。
  6
  7            private Point formLocation;
  8       
  9            public Point FormLocation
 10            {
 11                get { return formLocation; }
 12                set
 13                {
 14                    if (value != formLocation)
 15                    {
 16                        formLocation = value;
 17                        appSettingsChanged = true;
 18                    }
 19                }
 20            }
 21
 22
 23            // 从配置文件中反序列化类。
 24            public bool LoadAppSettings()
 25            {
 26                XmlSerializer mySerializer = null;
 27                FileStream myFileStream = null;
 28                bool fileExists = false;
 29
 30                try
 31                {
 32                    // 为 ApplicationSettings 类型创建 XmlSerializer。
 33                    mySerializer = new XmlSerializer(typeof(ApplicationSettings));
 34                    FileInfo fi = new FileInfo(Application.LocalUserAppDataPath
 35                       + @"\myApplication.config");
 36                    // 如果配置文件存在,将其打开。
 37                    if (fi.Exists)
 38                    {
 39                        myFileStream = fi.OpenRead();
 40                        // 反序列化配置文件以创建新的
 41                        // ApplicationSettings 实例。
 42                        ApplicationSettings myAppSettings =
 43                          (ApplicationSettings)mySerializer.Deserialize(
 44                           myFileStream);
 45                        // 为 ApplicationSettings 类的这一实例
 46                        // 分配属性值。
 47                        this.formLocation = myAppSettings.FormLocation;
 48                        fileExists = true;
 49                    }
 50                }
 51                catch (Exception ex)
 52                {
 53                    MessageBox.Show(ex.Message);
 54                }
 55                finally
 56                {
 57                    // 如果 FileStream 是打开的,将其关闭。
 58                    if (myFileStream != null)
 59                    {
 60                        myFileStream.Close();
 61                    }
 62                }
 63
 64           
 65                return fileExists;
 66            }
 67
 68            // 如果设置发生变化,则将
 69            // 类序列化到配置文件中。
 70            public bool SaveAppSettings()
 71            {
 72                if (this.appSettingsChanged)
 73                {
 74                    StreamWriter myWriter = null;
 75                    XmlSerializer mySerializer = null;
 76                    try
 77                    {
 78                        // 为 ApplicationSettings 类型
 79                        // 创建 XmlSerializer。
 80                        mySerializer = new XmlSerializer(
 81                          typeof(ApplicationSettings));
 82                        myWriter =
 83                          new StreamWriter(Application.LocalUserAppDataPath
 84                          + @"\myApplication.config", false);
 85                        // 将 ApplicationSettings 类的这一实例
 86                        // 序列化到配置文件中。
 87                        mySerializer.Serialize(myWriter, this);
 88                    }
 89                    catch (Exception ex)
 90                    {
 91                        MessageBox.Show(ex.Message);
 92                    }
 93                    finally
 94                    {
 95                        // 如果 FileStream 是打开的,将其关闭。
 96                        if (myWriter != null)
 97                        {
 98                            myWriter.Close();
 99                        }
100                    }
101                }
102                return appSettingsChanged;
103            }
104        }
出处:ting BLOG

时间: 2024-09-19 08:15:31

序列化和反序列化XML应用程序设置类的相关文章

使用XStream序列化、反序列化XML数据时遇到的各种问题

现在参与的项目是一个纯Application Server,整个Server都是自己搭建的,使用JMS消息实现客户端和服务器的交互,交互的数据格式采用XML.说来惭愧,开始为了赶进度,所有XML消息都是使用字符串拼接的,而XML的解析则是使用DOM方式查找的.我很早就看这些代码不爽了,可惜一直没有时间去重构,最近项目加了几个人,而且美国那边也开始渐渐的把这个项目开发的控制权交给我们了,所以我开始有一些按自己的方式开发的机会了.因而最近动手开始重构这些字符串拼接的代码. 对XML到Java Bea

JAVA对象序列化保存为XML文件的工具类

java对象|xml   今天看了看java.beans包,发现了两个好东西,XMLEncoder和XMLDecoder.发现自己以前把从XML存取对象真是太费力气啦.做了小工具类,以后可以用用了. package com.imct.util; import java.beans.XMLDecoder;import java.beans.XMLEncoder;import java.io.File;import java.io.FileInputStream;import java.io.Fil

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

try { XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("my", "http://flibble"); Workers workers = new Workers(); workers.MyWorkers = new Worker[] { new Worker() { Name = "1", Number = 1 }, new Worker() { Nam

C# XML和JSON 序列化与反序列化

1.JSON的序列化与反序列化     JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,它虽然是JavaScript的一个子集,但它是独立于语言的文本格式.它的数据格式比较简单,易于读写,且都是压缩的,占用带宽小且易于解析,通常会用JSON格式来传输数据或者用于数据存储.有关JSON数据结构语法的更多知识大家可以在网上其它的地方进行了解,我们只要记住在服务端向客户端传输数据时经常使用它,然后对它的序列化和反序列化非常值得了解就ok了.序列化的过程就是把

序列化和反序列化

  互联网的产生带来了机器间通讯的需求,而互联通讯的双方需要采用约定的协议,序列化和反序列化属于通讯协议的一部分.通讯协议往往采用分层模型,不同模型每层的功能定义以及颗粒度不同,例如:TCP/IP协议是一个四层协议,而OSI模型却是七层协议模型.在OSI七层协议模型中展现层(Presentation Layer)的主要功能是把应用层的对象转换成一段连续的二进制串,或者反过来,把二进制串转换成应用层的对象--这两个功能就是序列化和反序列化.一般而言,TCP/IP协议的应用层对应与OSI七层协议模型

asp.net JSON序列化与反序列化使用

  对JSON数据进行序列化和反序列化 可以使用DataContractJsonSerializer类将类型实例序列化为JSON字符串,并将JSON字符串反序列化为类型实例. DataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NET Framework 4在System.Runtime.Seri

一起谈.NET技术,ASP.NET 中JSON 的序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{}',中

ASP.NET 中JSON “.NET研究”的序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{}',中

C#实现XML与实体类之间相互转换的方法(序列化与反序列化)_C#教程

本文实例讲述了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序列化与反序列化 //