日期:2014-05-18  浏览次数:20480 次

关于网站自定义配置文件处理,进来探讨下
我有一个想法,进来探讨下。


做网站的时候写配置文件相信大家都遇到过的,特别是象blog这种。
比如可以在后台定义 blog的名称,一页显示多少条记录, 留言需要验证码不,留言字数等等等等。

通常我们都是写在xml文件里面的。


我来说说我的做法吧~

图片保存路径
<item key="SavePath"><![CDATA[/UploadFile/Product/]]></item>


上传的图片大小,缩放等参数
  <item key="MarkImage" size="100" primal="false">
  <!-- 
  店标缩略图参数
  key:关键字
  open:是否启用该缩略图
  width:缩略图宽
  height:缩略图高
  type:缩放模式
  place:对齐模式
  tail:文件名尾部
  -->
  <img key="1" open="true" width="108" height="108" type="1" place="0" tail="_1" />
  <img key="2" open="true" width="208" height="208" type="1" place="0" tail="_2" />
  </item>

网站的注册用户类型
  <node key="UserType" remark="用户类型" type="tinyint" size="0 至 255" >
  <node text="个人用户" value="0" />
  <node text="企业用户" value="1" />
  <node text="市场用户" value="2" />
  </node>


以上是我在我们网站的xml配置文件中截取的比较典型的三段.

我写了一个静态类,根据xml配置文件写相应的方法返回这些值
比如:
  public static List<ListItem> UserType
  {
  get
  {
  return Box.ReadXml("/root/node[@key=\"User\"]/node[@key=\"UserType\"]");
  }
  }

  /// <summary>
  /// 获取上传图片的目录
  /// </summary>
  public static string SavePath
  {
  get
  {
  return ReadNodeData("/root/node[@key=\"Shop\"]/item[@key=\"SavePath\"]");
  }
  }

这样调用的时候就相对很方便了。

写得很乱, 不知道大家有没有看懂我的意思 :(




==================================================================
我知道还有一种保存培植文件的方法,就是dz,dv论坛这些,不过我觉得更麻烦。
=================================



用以上的方法写配置文件相对比较好,起码比直接写在代码里面好管理,有条理。
但是我还是觉得很麻烦,修改的时候不仅眼改xml配置文件,还要修改相应的静态类。
小型的网站还好说,大型的网站就麻烦了,修改一个配置文件就要重新部署下


实在太麻烦了 ^o^ ,不知道大家通常是怎么处理的。


刚刚在研究JSON(不会有人不知道吧)
觉得这个格式挺好,用这个做配置文件似乎能带来不少方便。
当然用xml格式也可以,但是编写,读取都蛮复杂


具体想法如下:
建一张Config的表
key: 配置唯一标识
ConfigStr 配置内容
==================================
-------------------------------------
key: SavePath
ConfigStr:/UploadFile/Product/
-------------------------------------
key: MarkImage
ConfigStr:
{
size="100",
primal="false"
item
[
  {key="1",open="true",width="108",height="108",type="1",place="0",tail="_1"}
  {key="2",open="true",width="208",height="208",type="1",place="0",tail="_2"}
]
}
-------------------------------------
key: UserType
ConfigStr:
{
[
 text="个人用户" value="0",
 text="企业用户" value="1",
 text="市场用户" value="2"
]
}



直接把config所有的内容都cache了
听说.net里面也有一个处理json的组建,(没有就