Configクラスの実装サンプル
前回のエントリでちょっと載せたコードについて。
Configクラスを毎回書くのがだるかったので基底クラスを作ってそれを継承するようにしました。
この3つを基底クラスに定義したことで、Configクラスは非常にスッキリしたように思います。
本当はシングルトンパターンもSingleton<T>
みたいなクラス作って継承させたかったんですが、Instanceプロパティの型の定義に四苦八苦して、結局派生クラス(この場合Configクラス)に直接書きました。
ちなみに、ConfigクラスにはINotifyPropertyChanged
インターフェースは実装していません。
せっかくシンプルにまとめたクラスが見にくくなってしまうと思ったからです。
Notify Property Weaverという大変便利なVisual Studio用のアドオンもあるのですが、配布サイトが既になくなってしまっているのと、VS2010専用であるため、今回は考慮していません。
Configクラスの使い方
const string ConfigFileName = "hogefuga.xml"; string dataPath = mbApiInterface.Setting_GetPersistentStoragePath(); string configPath = Path.Combine(dataPath, ConfigFileName); // 読み込み // ※configPathにファイルが存在しない場合や、 // XMLのデシリアライズに失敗すると、勝手に内部でLoadDefaultを呼びます。 Config.Instance.Load(configPath); // プロパティ取り出し Console.WriteLine(Config.Instance.ExampleString); // => example // プロパティ書き込み Config.Instance.ExampleBoolean = false; // 保存 Config.Instance.Save(configPath);