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 } }