Utility-AppConfig2

Utility-AppConfig2クラス。

<?xml version="1.0" standalone="yes"?>
<ApplicationName>
  <AppConfig>
    <Item1>data1</Item1>
    <Item2>data2</Item2>
  </AppConfig>
  <UserConfig>
    <Item3>data3</Item3>
    <Item4>data4</Item4>
  </UserConfig>
</ApplicationName>
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Reflection;
using System.IO;

namespace MyApp.Utility
{
	/// <summary>
	/// 設定ファイルクラス(DataSetを使用)
	/// </summary>
	/// <example>
	///		//設定ファイル読み込み
	///		AppConfig2 ac = AppConfig2.GetInstance();
	///		DataTable dtApp = ac.GetDataTable(AppConfig2.TAG_APP_CONFIG);
	///		DataTable dtUser = ac.GetDataTable(AppConfig2.TAG_USER_CONFIG);
	///		
	///		string item1 = dtApp.Rows[0][AppConfig2.TAG_ITEM_1].ToString();
	///		string item3 = dtUser.Rows[0][AppConfig2.TAG_ITEM_3].ToString();
	///		
	///		//設定ファイル書き込み
	///		dtApp.Rows[0][AppConfig2.TAG_ITEM_1] = "kai1";
	///		dtUser.Rows[0][AppConfig2.TAG_ITEM_3] = "kai3";
	///
	///		//設定ファイル更新
	///		ac.WriteXml();
	/// 
	/// </example>
	public class AppConfig2
	{
        #region 変数

        /// <summary>
        /// configデータセット
        /// </summary>
        private static DataSet configDataSet;
        
        /// <summary>
        /// コンフィグファイルパス
        /// </summary>
        private static string configFolder = @".\";

        /// <summary>
        /// シングルトンオブジェクト
        /// </summary>
        private static AppConfig2 instance = new AppConfig2();

        /// <summary>
        /// アプリケーションコンフィグファイル名
        /// </summary>
		private const string CONFIG_FILE_NAME = @"app.config2.xml";

		/// <summary>
		/// TAG:AppConfig
		/// </summary>
		public const string TAG_APP_CONFIG = "AppConfig";

		/// <summary>
		/// TAG:UserConfig
		/// </summary>
		public const string TAG_USER_CONFIG = "UserConfig";

		/// <summary>
		/// TAG:Item1
		/// </summary>
		public const string TAG_ITEM_1 = "Item1";

		/// <summary>
		/// TAG:Item2
		/// </summary>
		public const string TAG_ITEM_2 = "Item2";

		/// <summary>
		/// TAG:Item3
		/// </summary>
		public const string TAG_ITEM_3 = "Item3";

		/// <summary>
		/// TAG:Item4
		/// </summary>
		public const string TAG_ITEM_4 = "Item4";

		#endregion

		#region メソッド

		#region コンストラクタ
		/// <summary>
        /// コンストラクタ
        /// </summary>
        private AppConfig2()
        {
            configDataSet = new DataSet();
            configDataSet.ReadXml(Path.Combine(configFolder,CONFIG_FILE_NAME));
        }
        #endregion

        #region インスタンス取得
        /// <summary>
        /// インスタンス取得
        /// </summary>
        /// <returns>コンフィグ管理クラスオブジェクト</returns>
        public static AppConfig2 GetInstance()
        {
            return instance;
        }
        #endregion

        #region データテーブルの取得
        /// <summary>
        /// データテーブルの取得
        /// </summary>
        /// <param name="argKey">取得したいデータテーブル名(タグ名)</param>
        /// <returns>データテーブル</returns>
        public DataTable GetDataTable(string argKey)
        {
            try
            {
                if (configDataSet.Tables[argKey] == null)
                {
                    return new DataTable();
                }
                return configDataSet.Tables[argKey];
            }
            catch
            {
                return new DataTable();
            }
        }
        #endregion

        #region XML出力
        /// <summary>
        /// XML出力
        /// </summary>
        public void WriteXml()
        {
            try
            {
                configDataSet.WriteXml(Path.Combine(configFolder,CONFIG_FILE_NAME));
            }
            catch
            {
                throw new Exception(CONFIG_FILE_NAME + "出力異常発生");
            }
        }
        #endregion

        #endregion
    }
}