曾经写过的那些代码由于各种各样的原因没能继续做下去。这段时间时间比较充裕于是又翻了出来,但是我重新整理代码的时候发现这些代码需要重新实现。
         原来的实现是将整个配置文件读到DataSet中,然后逐行扫描保存到Hashtable,然后从Hashtable中根据给定的参数做Key,检索特定的配置字符串。现在想象总感觉这些代码有改造的空间(毕竟一个完整的应用程序很可能会有很多自定义的配置),我完全可以用XmlDocment,然后直接用GetElementsByTagName,至少应该节省了放到DataSet中的空间浪费和从DataSet读到Hashtable的时间浪费。代码是在vs.net 2005实现的。

 1'**************************************************************************
 2'Author:      zhaozhanqiang
 3'CreateTime:  2005-11-19
 4'ModuleName:  SettingsManager
 5'Discription: Read certain setting from config file
 6'**************************************************************************
 7
 8Imports System.Xml
 9Imports System.IO
10Namespace zzqNamespace zzq.DotNet.SettingsManager
11
12    Public Class SettingsManagerClass SettingsManager
13        ''' <summary>
14        ''' Read setting from config file
15        ''' </summary>
16        ''' <param name="strKey">Just a key in config file,retrieve a setting string according to it .</param>
17        ''' <returns>Setting string that can be used</returns>
18        ''' <remarks></remarks>
19        Public Shared Function GetSetting()Function GetSetting(ByVal strKey As String) As String
20
21            Dim strRootpath As String = String.Empty
22            strRootpath = Directory.GetCurrentDirectory
23            Dim strSeparater As String = Path.DirectorySeparatorChar
24            Dim doc As New XmlDocument
25            doc.Load(strRootpath + ".." + strSeparater + ".." + strSeparater + ".." + strSeparater + "Settings" + strSeparater + "Settings.config")
26
27            Return doc.GetElementsByTagName(strKey)(0).InnerText
28
29        End Function
30       
31    End Class
32
33End Namespace
34

这里需要说明的地方是没有用系统文件路径分隔符“\”,这样可能在其他语言环境中造成麻烦,其次是这里没有做任何捕获异常的操作,而是在上层调用的时候处理,这样异常层次不会太深便于跟踪 。其余的代码设计说明可以参考前一篇文章。

转载于:https://www.cnblogs.com/netboy/archive/2005/11/19/280361.html

关于通用配置管理模块的思考-续(用XmlDocument 还是DataSet)相关推荐

  1. ylbtech-Model-Account(通用账户模块设计)

    ylbtech-DatabaseDesgin:ylbtech-Model-Account(通用账户模块设计) ylbtech-Model-Account(通用账户模块设计) 1.A,数据库关系图(Da ...

  2. 借Google Guava学习发现和开发通用功能模块

    如何发现通用的功能模块? 很多人觉得做业务开发没有挑战,实际上,做业务开发也会涉及很多非业务功能的开发,比如我们前面讲到的 ID 生成器.性能计数器.EventBus.DI 容器,以及后面会讲到的限流 ...

  3. Entrust Datacard将从泰雷兹手中收购市场领先的通用硬件安全模块业务

    明尼波利斯和佛罗里达州森赖斯--(美国商业资讯)--领先的可信身份和安全发布技术解决方案提供商Entrust Datacard今日宣布,该公司已签署一份最终协议,收购泰雷兹(Thales)市场领先的通 ...

  4. java毕业设计——基于Java+sqlserver的通用安全模块设计与实现(毕业论文+程序源码)——安全模块

    基于Java+sqlserver的通用安全模块设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Java+sqlserver的通用安全模块设计与实现,文章末尾附有本毕业设计的论文和源码下载地 ...

  5. 【微服务】Nacos 配置管理模块

    目录 一.Nacos 配置管理模块 1.配置⼀致性模型 2.Server 间的⼀致性协议 2.1.有 DB 模式(读写分离架构) 2.2.无 DB 模式 3.SDK 与 Server 的⼀致性协议 3 ...

  6. B端会员模块的思考与设计

    本文由作者 阿井 于社区发布 当前,互联网产品的商业化模式主要有付费会员.广告投放(如谷歌.百度.头条的广告投放).佣金抽成(淘宝.京东等平台). 其中付费会员越来越成为企业商业化产品的主流.特别是在 ...

  7. 使用Core Audio实现VoIP通用音频模块

    最近一直在做iOS音频技术相关的项目,由于单项直播SDK,互动直播SDK(iOS/Mac),短视频SDK,都会用到音频技术,因此在这里收集三个SDK的音频技术需求,开发一个通用的音频模块用于三个SDK ...

  8. 【实战分享】使用Core Audio实现VoIP通用音频模块

    最近一直在做iOS音频技术相关的项目,由于单项直播SDK,互动直播SDK(iOS/Mac),短视频SDK,都会用到音频技术,因此在这里收集三个SDK的音频技术需求,开发一个通用的音频模块用于三个SDK ...

  9. 微擎we7微赞官方通用功能模块插件带XML文件分享

    1.微赞we7模块 - 微商城 微商城是基于当前很受欢迎的微信的一种传媒方式中的一种商业运用,微信的当前的火热是一个商机,基于微信的传播速度,及其简便等优点,为商家提供一个平台,在这个更简便的.方便的 ...

  10. 基于Javaweb的小项目(类似于qqzone) 4 ——通用代码模块 - 过滤器、异常处理、servlet通用代码块

    1.过滤器Filter 对页面传回的内容进过滤,并设置编码,防止出现中文乱码问题 [CharacterEncodingFilter.java] package com.javaweb.qqzone.m ...

最新文章

  1. TCP编程函数和步骤
  2. html5 css3雪花效果,HTML5 | CSS3水晶皇冠雪花形状
  3. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的指数权重移动(滚动)平均、例如,计算某公司的多个店铺每N天(5天)的滚动销售额指数权重移动(滚动)平均
  4. replace into
  5. Java中判断数组是否包含某值
  6. 我应该用哪种虚拟机?(一)
  7. const变量初始化问题
  8. 一级计算机2016难度,2016年计算机等级一级考前必看
  9. ORA-01502-对应的快速解决办法(索引或这类索引的分区处于不可用状态)
  10. Redis主从复制知识点
  11. docsify,文档生成利器!
  12. 戴尔电脑外放有声音插入耳机还是外放解决方法
  13. 《胡雪岩》影评10篇
  14. 推导全部勾股数方法(转)
  15. 案例:vivo基于Java技术栈的实时监控系统
  16. 百度AI实现图片转文字-python
  17. Windows BAT批处理脚本教程
  18. 【PLM—1】——2019-NAACL-Bert
  19. 使用 AutoHotKey 配合Win10分屏功能
  20. 什么是太阳光模拟器整车全光谱阳光模拟系统?

热门文章

  1. c语言中void 与0,C语言中的 (void*)0 与 (void)0
  2. ffmpeg 推流同时录像命令_使用FFmpeg将rtsp流摄像头视频转码为rtmp播放
  3. 怎么判断间隙过渡过盈配合_圆柱销有2个标准,选型注意材料和热处理,特别是销孔的配合关系...
  4. csv文件的常用方法--持续更新
  5. 查看工作日志Linux,工作日志,Linux的表现还是不错的
  6. python整型图_基于PIL的图像整形与裁剪矢量化
  7. hashmap hash冲突怎么解决_让我再撸一次HashMap
  8. 优雅地修改多模块maven项目中的版本号
  9. EventBus (一) 使用详解——初步使用EventBus
  10. 设计思想之高内聚低耦合