利用.NET的XML序列化解决系统配置问题

在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串、上传路径等等。
在最初的ASP系统中,比较常用的方法是将值保存为Application或Session变量;在Asp.net系统中,目前比较常见的简单方法是把相应的配置项写入Web.Config中,例如
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
...
</system.web>
<appSettings>
<add key="ConnectionString" value="server=(local);database=dbname;uid=username;pwd=password"/>
</appSettings>
</configuration>

然后在程序中通过如下方式读取
string connString = ConfigurationSettings.AppSettings["ConnectionString"];

这种方法在系统规模较小复杂度较低的时候也不失为一种简单明了的轻量级方法,不过如果系统较复杂,配置项会较多,同时我们需要按不同模块对配置进行划分,并且还希望能以面向对象方法来对其进行封装,那么如果仍然采用这种过于简化方式就不太合时宜了。
-----------------------------------------------------------------
下面,我讲述一下通过XML类序列化解决系统配置问题的方法。
关于XML类序列化和反序列化(另外一种描述是串行化和并行化)的技术细节,大家可以查看MSDN了解;这里简单讲两句,XML序列化是把一个对象序列化到XML文档的过程,反序列化则是从XML输出中重新创建原始状态的对象。
直观表现就是如下图模式

看了这个图,就很清楚了,通过序列化,可以采用面向对象的方法,非常自然和方便的读取和设置系统配置;.NET Framework承担了对象和XML文件映射工作,我们只需要简单的使用就OK。下面我们讲一下具体内容。
上面图示已经表明,首先需要一个XML配置文件,格式内容如上图,具体配置项可以自行增减。

时间: 2024-09-27 00:54:24

利用.NET的XML序列化解决系统配置问题的相关文章

利用XML序列化实现程序配置文件

 有些应用程序在退出的时候,会将一些设置值写入到文件里,以便下次程序启动时调用,这个文件统称为配置文件.例如:Windows的扫雷程序,在每次启动的时候,都会出现在上次关闭的位置,就是因为扫雷程序在退出的时候将当前位置写入到配置文件里. 早期的配置文件的实现有两种方法.一是INI文件,在Win32的API中还专门有读写INI文件的API函数:另一个是注册表,这也是很多程序的首选,在版本较新的扫雷程序就是利用注册表实现配置函数.不过,上述的两种方法都有其的局限性.INI文件,结构简单,容易编辑,有

c#4 0-C# 请教XML序列化时,内存错误问题如何解决

问题描述 C# 请教XML序列化时,内存错误问题如何解决 环境C#4.5 E5 16G内存 代码: try { CommonHelper.CGCollect(); string xml = XmlHelper.XmlSerialize(listKeyWords, Encoding.Default); Mutex m = new Mutex(); if (!string.IsNullOrEmpty(xml)) { DocHelper.writeXC(xml, string.Format("{0}{

VC++中利用MSXML解析XML文档

c++|xml 四.程序实现 下面通过一个具体的实例来说明在VC++中如何利用MSXML解析XML文档. (1)源XML文档(xmlfile.xml)如下: <?xml version="1.0" encoding="GB2312"?> <Device id="10041" name="设备1"> <Type>13</Type> <TypeName>保护</Ty

利用MSXML解析XML文本

xml   一.引言 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   当前Web上流行的脚本语言是以HTML为主的语言结构,HTML是一种标记语言,而不是一种编程语言,主要的标记是针对显示,而不是针对文档内容本身结构的描述的.也就是说,机器本身是不能够解析它的内容的,所以就出现了XML语言. XML(eXtensibleMarkup Language)语言是SGML

关于C# XML序列化的一个BUG的修改

原文:关于C# XML序列化的一个BUG的修改 关于C# XML序列化的一个BUG的修改 在我前一篇博客中提到用XML序列化作为数据库的一个方案,@拿笔小心 提到他们在用XML序列化时,遇到了一个比较严重的bug,即XML不闭合,系统不能正确的加载此XML.在我的开发经验中,也遇到过这样的问题.现在把这个BUG的描述及解决方案记录如下,也供遇到此BUG的朋友参考. BUG描述 这个BUG的出现也是比较诡异的,我们给客户做的一套系统,这个系统会把数据写到N个xml文件中,正常情况下都没有问题.直到

金山毒霸一键揪出风险进程 快速解决系统问题

在使用电脑过程中,误操作或感染木马病毒都会带来一系列的系统问题,小到系统时间被恶意篡改,大到系统文件被病毒破坏,手工解决这类问题不仅麻烦,而且不安全.永久免费的金山毒霸内置"安全百宝箱",利用其中的"系统工具"可以一键揪出风险进程,彻底删除隐私文件,快速修复系统文件,轻松同步系统时间,解决系统问题方便又安全. 进程管理器:一键揪出风险进程 很多木马病毒都是通过加载进程来为非作歹的,凭肉眼很难找出潜伏在系统深处的风险进程,金山进程管理器不但具有Windows系统自带的

金山毒霸如何快速解决系统问题

  金山毒霸内置"安全百宝箱",利用其中的"系统工具"可以一键揪出风险进程,彻底删除隐私文件,快速修复系统文件,轻松同步系统时间,解决系统问题方便又安全.步骤如下: 进程管理器:一键揪出风险进程 很多木马病毒都是通过加载进程来为非作歹的,凭肉眼很难找出潜伏在系统深处的风险进程,金山进程管理器不但具有Windows系统自带的"任务管理器"的相关功能,而且可以检测进程的安全性,一键揪出风险进程. 打开"安全百宝箱"窗口,单击&qu

利用百度电脑专家修复windows系统蓝屏的方法

  windows系统下的dll文件通常是保证某些软件与游戏正常运行的重要组件,当系统在出现某些dll文件损坏或丢失时,我们运行软件或游戏,系统将弹窗提示"XXX.dll丢失或损坏"的错误提示,对于这一问题,用户可通过使用百度电脑专家来解决,下面小编就为大家带来了百度电脑专家修复DLL文件的方法,如果你的电脑也出现了DLL文件丢失的问题,那么赶快尝试下吧!   环境:Win2003, Win2008, WinXP, Vista, Win7查看详情立即下载 操作方法 1.我们在安装并打开

.NET对象的XML序列化和反序列化

 序列化的概念 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了.比如,一个计数器,数值为2,我们可以用字符串"2"表示.如果有个对象,叫做connter,当前值为2,那么可以序列化成"2",反向的,也可以从"2"得到值为2的计数器实例.这样,关机时序列化它,开机时反序列化它,每次开机都是延续的.不会都是从头开始. 序列化概念的提出和实现,可以使我们的应用程序的设置信息保存和读取更加方便