クラスの初期値をXMLファイルから読み書きします。
データファイルとしても使えます。
このクラスをメインで持って全Formに持ち回りすれば、客先環境でのコネクションストリング差分吸収は簡単です。
(例はユーザーID・パスワードを内包しているのでよくないですが)
/// <summary>
/// InitialData の概要の説明です。
/// </summary>
public class InitialData
{
public int no ;
public string ConnectionString ;
public InitialData()
{
//
// TODO: コンストラクタ ロジックをここに追加してください。
//
no = 10 ;
ConnectionString = "workstation id=(local);packet size=4096;data source=(local);" +
"persist security info=True;initial catalog=Database;user id=User;password=Password";
}
/// <summary>
/// XMLファイルをクラスに読み込む
/// </summary>
/// <returns>読み込んだクラス</returns>
public static InitialData LoadInitialData()
{
InitialData initialdata = new InitialData() ;
try
{
XmlSerializer xsInitialData = new XmlSerializer(typeof(InitialData));
TextReader readerInitialData = new StreamReader(Application.StartupPath + @"\InitialData.xml");
initialdata = (InitialData)xsInitialData.Deserialize(readerInitialData);
readerInitialData.Close();
}
catch(Exception){}
return initialdata ;
}
/// <summary>
/// クラスをXMLファイルに書き込む
/// </summary>
/// <param name="initialdata">書き込むクラス</param>
public static void SaveInitialData(InitialData initialdata)
{
XmlSerializer xsInitialData = new XmlSerializer(typeof(InitialData));
TextWriter writerInitialData = new StreamWriter(Application.StartupPath + @"\InitialData.xml");
xsInitialData.Serialize(writerInitialData, initialdata);
writerInitialData.Close();
}
}