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

转载 2004年06月29日 16:53:00
在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串、上传路径等等。

在最初的ASP系统中,比较常用的方法是将值保存为Application或Session变量;在Asp.net系统中,目前比较常见的简单方法是把相应的配置项写入Web.Config中,例如

 

然后在程序中通过如下方式读取

 


这种方法在系统规模较小复杂度较低的时候也不失为一种简单明了的轻量级方法,不过如果系统较复杂,配置项会较多,同时我们需要按不同模块对配置进行划分,并且还希望能以面向对象方法来对其进行封装,那么如果仍然采用这种过于简化方式就不太合时宜了。

-----------------------------------------------------------------

下面,我讲述一下通过XML类序列化解决系统配置问题的方法。

关于XML类序列化和反序列化(另外一种描述是串行化和并行化)的技术细节,大家可以查看MSDN了解;这里简单讲两句,XML序列化是把一个对象序列化到XML文档的过程,反序列化则是从XML输出中重新创建原始状态的对象。

直观表现就是如下图模式
 

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

上面图示已经表明,首先需要一个XML配置文件,格式内容如上图,具体配置项可以自行增减。

然后我们需要编写一个类,如上图所示;特殊的一点,为了使类能够实现XML序列化,需要在类的所有属性声明前添加属性信息XmlElement,如下所示。

 

由于AppConfig类本身没有实现方法,因此我们需要一个配置类AppConfigSetting.cs。类的结构很简单,只需要两个静态方法,Get()获取AppConfig对象,Save()保存AppConfig对象。

另外,我们需要在 Web.Config中添加该XML配置文件的地址。

 

 


类的使用非常简单,基本方式如下

 

看到这样的代码,不禁有令人赏心悦目之感;相对于原来的直接读取AppSetting,可谓解脱矣! :)


OK,就此结束了。这篇文章只涉及对象序列化的非常简单的应用,没有涉及太多的技术原理和细节,大家要深入了解请参考MSDN。

希望文章能对大家有所补益和启发。 :)


测试源代码工程文件下载(Visual Studio.net 2003)

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

在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串、上传路径等等。在最初的ASP系统中,比较常用的方法是将值保存为Application或Session变量;在Asp...
  • ycl111
  • ycl111
  • 2004年10月25日 18:00
  • 803

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

在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串、上传路径等等。在最初的ASP系统中,比较常用的方法是将值保存为Application或Session变量;在Asp...
  • linnchord
  • linnchord
  • 2004年05月23日 08:59
  • 729

利用.NET的XML序列化解决系统配置问题; .NET对象的XML序列化和反序列化

http://www.newasp.net/tech/net/13040.htmlhttp://blog.csdn.net/shizhiyingnj/archive/2007/02/11/150794...
  • dmtlyc7517
  • dmtlyc7517
  • 2010年08月26日 17:40
  • 919

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

 序列化的概念 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了。比如,一个计数器,数值为2,我们可以用字符串“2”表示。如果有个对象,叫做...
  • shizhiyingnj
  • shizhiyingnj
  • 2007年02月11日 23:16
  • 38402

C# 在.net中序列化读写xml方法的总结

上网瞎逛看到这篇文件,觉得很不错,转载过来~博客园确实是.NET氛围很好啊 转载地址:http://www.cnblogs.com/fish-li/archive/2013/05/05/306181...
  • wzy0754
  • wzy0754
  • 2017年02月26日 23:28
  • 978

xml序列化及反序列化.net对象

xml在项目中的应用非常广泛,比如可以用来作为不同模块之间接口交互的数据格式,或用来对数据进行本地化的存储(如配置文件)。命名空间System.Xml.Serialization提供了对xml进行反序...
  • LazyLeland
  • LazyLeland
  • 2011年08月06日 19:03
  • 7897

C#序列化与反序列化对象XML和JSON 详细代码工具

C#对对象进行序列化与反序列化的工具 能方便的生成json和Xml
  • liuxiaoshuang002
  • liuxiaoshuang002
  • 2016年12月20日 13:10
  • 671

C# XML序列化方法和常用特性

/* C#对象XML序列化(一):序列化方法和常用特性 .Net Framework提供了对应的System.Xml.Seriazliation.XmlSerializer负责把对象序列化到XML,...
  • smartsmile2012
  • smartsmile2012
  • 2015年02月13日 10:14
  • 1354

序列化,反序列化(xml)字符串

简单方法: ///         /// 将object对象序列化成XML         ///         ///         ///         public ...
  • tiemufeng1122
  • tiemufeng1122
  • 2011年12月20日 15:55
  • 3843

C#序列化成XML注意事项

最常用的序列化是把某个类序列化成二进制文件.但有时我们也会把类序列化成xml文件. 假如有如下一个类 class Arwen { private Hashtable table = new H...
  • weiwenhp
  • weiwenhp
  • 2012年11月21日 17:40
  • 1858
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用.NET的XML序列化解决系统配置问题
举报原因:
原因补充:

(最多只允许输入30个字)