关于网站自定义配置文件处理,进来探讨下

satans18 2008-07-10 02:48:12
我有一个想法,进来探讨下。


做网站的时候写配置文件相信大家都遇到过的,特别是象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的组建,(没有就用正则)
然后我们写几个方法,可以将以上的值封装成指定的格式
比如toString,toArray,toListitem等等
这样我们要用的时候就跟方便了,而且修改配置文件也很简单,也不用重新部署项目了

本人学习c#时间不长,也不知道这个想法怎么样,主要是想多听听前辈们关于如何处理配置文件的想法。
望指教!



...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkun_3yue3 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 satans18 的回复:]
这一种好是好,但是有局限性
比如,a.com用了一个配置文件
b.a.com,c.a.com也要用这个配置文件,你的静态类要写多次,改起来就麻烦了
[/Quote]

没明白...
satans18 2008-07-11
  • 打赏
  • 举报
回复
顶一下~~

杂没人进来探讨呢
satans18 2008-07-11
  • 打赏
  • 举报
回复
这一种好是好,但是有局限性
比如,a.com用了一个配置文件
b.a.com,c.a.com也要用这个配置文件,你的静态类要写多次,改起来就麻烦了
sheng9hhd 2008-07-10
  • 打赏
  • 举报
回复
3.0里面的“匿名类型”和json很相似
kkun_3yue3 2008-07-10
  • 打赏
  • 举报
回复
我觉得第一种没有什么不好,一直在这样用
对于不经常改变的东西,我喜欢使用序列化类到文件
satans18 2008-07-10
  • 打赏
  • 举报
回复
嘿嘿,自己沙发

不知道啥时候变成两个叉裤了

62,194

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧