知识大全 如何在Microsoft.NET中自定义配置文件

Posted 属性

篇首语:撒网要撒迎头网,开船要开顶风船。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何在Microsoft.NET中自定义配置文件相关的知识,希望对你有一定的参考价值。

如何在Microsoft.NET中自定义配置文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   摘要   使用Microsoft NET开发一个项目时 可能包含了Windows应用程序 Web应用程序 Web Service Windows Service等多种应用 如果您想使这几个应用程序使用同一个配置(比如同一个数据库连接) 而又不想重复编写不同的配置文件 那么 NET提供的配置文件方案可能就不能达到你的目的了 本文介绍一种简单的使用xml格式的配置文件及其使用方法 本文假设您的项目有至少一个Windows应用程序 一个Web应用程序和一个Window Service应用      配置文件结构   为了使所有应用程序均可访问到该配置文件 本实例将配置文件放在WINNT\\SYSTEM 系统目录下 当然 读者可以自己定义文件存放的位置 但需要注意程序的移植性 Windows系统目录可以使用Windows API函数获取 但要求使用的Windows Web和Window Service应用程序对系统目录有读取的权限     为了方便阐述 我们将该配置文件命名为nfig(与微软 NET的配置文件扩展名相同) 在程序中如果不指定配置文件名 则配置文件默认为nfig     配置文件的结构如下 读者可以根据自己的需要对配置文件进行添删     <?xml version= encoding= utf ?>  <root>  <! Sql Server DB >  <systemdb>  <server>localhost</server>  <uid>sa</uid>  <pwd> </pwd>  <database>Pubs</database>  <pooling>True</pooling>  <maxpoolsize> </maxpoolsize>  <minpoolsize> </minpoolsize>  <lifetime> </lifetime>  </systemdb>  <! Sql Server DB >  <webdb server= localhost   uid= sa   pwd=   database= NorthWind   pooling= True   maxpoolsize=   minpoolsize=   lifetime=   />  <!—SMTP Server >  <smtpserver server= port= />  </root>     说明 可以看到 配置有两种形式 第一种的配置值直接写在xml节点上 另一种将配置值写在节点的属性上 下面的章节中将对这两种节点配置的获取和设置分别说明     配置文件采用xml结构 关于xml的语法和概念 网络上的相关资料很多 请读者自己参考网络资源 第一个节点使用子节点保存数据库配置 通过获取子节点值来获取数据库的配置 第二个节点使用节点的属性来保存数据库配置      读取配置   下面将讲述如何使用程序读取nfig配置文件      辅助程序 下面的程序段使用Windows API函数获取系统目录     using System Runtime InteropServices;  using System Text;   [DllImport( kernel )]    private static extern void GetSystemDirectory(StringBuilder SysDir int count);   public string GetSystemDirectory()      const int nChars = ;   StringBuilder Buff = new StringBuilder(nChars);   GetSystemDirectory(Buff nChars);   return Buff ToString();        这里我们先引用了System Runtime InteropServices名称空间 然后引用API函数GetSystemDirectory(StringBuilder int) 最后重写该方法 GetSystemDirectory()方法调用API函数 将系统目录作为字符串返回      解析xml文件 本例使用XML DOM(Document Object Modal)类来解析xml文件 程序片断如下     using System Xml;  private XmlDocument xmlDoc = new XmlDocument();  private string strConfigFile;  public SystemSetting()    strConfigFile = GetSystemDirectory() + @ \\nfig ;  xmlDoc Load(strConfigFile);    public string GetConfigValue(string strNode string strAttribute)    string strReturn = ;   try      //根据指定路径获取节点   XmlNode xmlNode = xmlDoc SelectSingleNode(strNode);      //获取节点的属性 并循环取出需要的属性值   XmlAttributeCollection xmlAttr = xmlNode Attributes;   for(int i= ;i<xmlAttr Count; i++)      if (xmlAttr Item(i) Name == strAttribute)   strReturn = xmlAttr Item(i) Value;         catch(XmlException xmle)      throw xmle;      return strReturn;      public string GetConfigValue(string strNode)      string strReturn = ;   try      //根据路径获取节点   XmlNode xmlNode = xmlDoc SelectSingleNode(strNode);   strReturn = xmlNode InnerText;      catch(XmlException xmle)      System Console WriteLine(xmle Message);      return strReturn;        这里我们先引用了System Xml名称空间 在构造函数中 指定配置文件到系统目录下的nfig 然后使用XmlDocument的Load()方法将该文件读入XmlDocument对象xmlDoc     GetConfigValue(string strNode string strAttribute)方法读取指定节点的指定属性值 如配置文件的节点的server属性     GetConfigValue(string strNode)方法读取指定节点的值 如第一节所述配置文件节点的子节点的值      管理配置   下面的程序示例提供管理配置文件的三个主要方法     public void SetConfigValue(string strNode string newValue)     try      //根据指定路径获取节点   XmlNode xmlNode = xmlDoc SelectSingleNode(strNode);      //设置节点值   xmlNode InnerText = newValue;      catch(XmlException xmle)      throw xmle;            public void SetConfigValue(string strNode string strAttribute string newValue)      try      //根据指定路径获取节点   XmlNode xmlNode = xmlDoc SelectSingleNode(strNode);      //获取节点的属性 并循环取出需要的属性值   XmlAttributeCollection xmlAttr = xmlNode Attributes;   for(int i= ;i<xmlAttr Count; i++)      if (xmlAttr Item(i) Name == strAttribute)   xmlAttr Item(i) Value = newValue;         catch(XmlException xmle)      throw xmle;            public void SaveConfig()      try      //保存设置的结果   xmlDoc Save(strConfigFile);      catch(XmlException xmle)      throw xmle;           SetConfigValue(string strNode string newValue)用来设置节点值 SetConfigValue(string strNode string strAttribute string newValue)用来设置节点的属性值 在修改了配置内容后 必须调用SaveConnfig()方法 用来将修改过的配置保存到文件      总结   配制文件有许多种形式 本文所提的只是一种自己编写的配制文件 当然 对本文的程序做一点点修改 您可以编写出其它各种各样符合程序实际需要的配制文件 希望本文对您开发应用程序有些帮助 cha138/Article/program/Java/hx/201311/11142

相关参考

知识大全 在DNN 4.X中自定义登录界面

在DNN4.X中自定义登录界面  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有时候我们需要自定

知识大全 ASP.NET项目开发指南:自定义Web.Config文件配置节

ASP.NET项目开发指南:自定义Web.Config文件配置节  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 javascript中自定义对象的属性方法分享

这篇文章介绍了在javascript中自定义对象的属性方法有需要的朋友可以参考一下   首先介绍下关联数组复制代码代码如下:<script>vartest=newObject()

知识大全 hibernate中自定义主键生成器

  Hibernate(目前使用的版本是)中提供了多种生成主键的方式  然而当前的这么多种生成方式未必能满足我们的要求  比如increment可以在一个hibernate实例的应用上很方便的时候但是

知识大全 hibernate中自定义主键生成器[1]

  Hibernate(目前使用的版本是)中提供了多种生成主键的方式  然而当前的这么多种生成方式未必能满足我们的要求  比如increment可以在一个hibernate实例的应用上很方便的时候但是

知识大全 Oracle中自定义函数 无参数 输入参数 输出参数

Oracle中自定义函数无参数输入参数输出参数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lis

知识大全 ASP.NET中自定义DataGrid分页设置的实现

ASP.NET中自定义DataGrid分页设置的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 hibernate中自定义主键生成器[2]

publicvoidconfigure(TypetypePropertiesparamsDialectd)throwsMappingExceptionStringtable=paramsgetProp

知识大全 Microsoft .NET的优势与劣势

Microsoft.NET的优势与劣势  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    NET

知识大全 Microsoft .NET 框架资源基础

Microsoft.NET框架资源基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要Chr