天天看點

自定義XML配置檔案的操作類

xml配置檔案:

<?xml version="1.0"?>

<ModuleSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <DataSource>fujian</DataSource>

  <Uid>fujian_zyz</Uid>

  <Password>fujian_sql_zyz</Password>

  <ShowLogin>false</ShowLogin>

</ModuleSettings>

操作類的實作:

using System;

using System.IO;

using System.Web;

using System.Text;

using System.Xml.Serialization;

using System.Xml;

namespace LTPTOOL

{

 #region 配置對象模型類

 /// <summary>

 /// 李天平

 /// 2004.3

 /// 配置的modul類(注意相關屬性的類型與[XmlElement])

 /// use:ModuleSettings settings=ModuleConfig.GetSettings();

 /// </summary>

 public class ModuleSettings

 {

  private string datasource;

  private string uid;

  private string password;

  private bool showlogin;

  [XmlElement]

  public string DataSource

  {

   set{ datasource=value; }

   get{ return datasource; }

  }

  [XmlElement]

  public string Uid

  {

   set{ uid=value; }

   get{ return uid; }

  }

  [XmlElement]

  public string Password

  {

   set{ password=value; }

   get{ return password; }

  }

  [XmlElement]

  public bool ShowLogin

  {

   set{ showlogin=value; }

   get{ return showlogin; }

  }

 }

 #endregion

 #region  配置的操作類ModuleConfig

 /// <summary>

 /// 配置的操作類ModuleConfig。

 /// </summary>

 public class ModuleConfig

 {

  public static ModuleSettings GetSettings()

  {   

   ModuleSettings data = null;

   XmlSerializer serializer = new XmlSerializer(typeof(ModuleSettings));

   try

   {

    string fileName = "db.config";    

    FileStream fs = new FileStream(fileName, FileMode.Open);     

    data = (ModuleSettings)serializer.Deserialize(fs);

    fs.Close();    

   }

   catch

   { 

    data = new ModuleSettings();

   }

   return data;

  }

  public static void SaveSettings(ModuleSettings data)

  {

   string fileName = "db.config";

   XmlSerializer serializer = new XmlSerializer (typeof(ModuleSettings));

   // serialize the object

   FileStream fs = new FileStream(fileName, FileMode.Create);

   serializer.Serialize(fs, data);

   fs.Close();

  }

  #endregion

 }

}

得到配置檔案的詳細資訊;

ModuleSettings settings=ModuleConfig.GetSettings();

txtServer.Text=settings.DataSource;

txtUser.Text=settings.Uid;

txtPass.Text=settings.Password;

儲存修改:

settings.DataSource=txtServer.Text;

ModuleConfig.SaveSettings(settings);

對于擴充配置也非常友善,隻需修改ModuleSettings的對象模型和ModuleConfig.中的檔案名就可以用到任何其他配置檔案的操作中。