在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配置文件,格式内容如上图,具体配置项可以自行增减。