【使い方】
指定したオブジェクトのシリアルデータをファイルに出力するサンプルです。
/// <summary>
/// シリアル化し、XMLドキュメントを指定したファイルに書き込みます。
/// </summary>
/// <param name="obj">シリアル化の対象となるオブジェクト。</param>
/// <param name="path">XMLドキュメントを書き込むファイルパス。(なければ生成する)</param>
public void OsWriteSerialize( object obj, string path )
{
XmlSerializer serial = new XmlSerializer( obj.GetType());
try
{
//シリアルデータ書き込み用ファイルストリームを生成
FileStream fs = new FileStream( path, FileMode.OpenOrCreate, FileAccess.Write );
//ファイルストリームにシリアルデータを書き込み
serial.Serialize( fs, obj );
//ファイルストリームを閉じる
fs.Close();
}
catch
{
throw new ArgumentException("指定したファイル[ " + path + " ]へのシリアルデータが出力できません。");
}
}
指定したタイプのオブジェクトのシリアルデータをファイルから読取り、逆シリアル化するサンプルです。
/// <summary>
/// 逆シリアル化し、指定したファイルのXMLドキュメントをオブジェクトに変換して返します。
/// </summary>
/// <param name="type">対象となるオブジェクト型。</param>
/// <param name="path">XMLドキュメントのファイルパス。</param>
/// <param name="exceptionFlag">エラー時の例外処理の有無を示す値。</param>
/// <returns>生成したオブジェクトを返す</returns>
public object OsReadDeserialize( System.Type type, string path, bool exceptionFlag )
{
object prtEnv = null;
XmlSerializer serial = new XmlSerializer( type );
try
{
//シリアルデータ読込み用ファイルストリームを生成
FileStream fs = new FileStream( path, FileMode.Open, FileAccess.Read );
//ファイルストリームからシリアルデータを読込み&オブジェクトに変換
prtEnv = serial.Deserialize( fs );
//ファイルストリームを閉じる
fs.Close();
}
catch
{
// 例外処理を行う場合、処理起動
if ( exceptionFlag )
throw new ArgumentException("指定したファイル[ " + path + " ]の逆シリアル化ができません。");
}
return prtEnv;
}
|