オブジェクトのシリアル化/逆シリアル化の方法

  オブジェクトのシリアル化/逆シリアル化を行うには、 「XmlSerializer」クラスを用いて行います。
【使い方】

 指定したオブジェクトのシリアルデータをファイルに出力するサンプルです。
/// <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;
}
【注意】
戻る