C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: オブジェクトの内容をXMLファイルに保存


(過去ログ 39 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■20488 / inTopicNo.1)  オブジェクトの内容をXMLファイルに保存
  
□投稿者/ tanaka (94回)-(2008/06/11(Wed) 09:52:51)

分類:[C#] 

オブジェクトの内容をXMLファイルに保存する場合
保存するクラスのメンバーがstaticだとその値が保存できないのですが
保存させるにはどうすればいいのでしょうか

【以下はとあるサイトのソース例】
//XMLファイルに保存するオブジェクトのためのクラス
public class SampleClass
{
    public int Number;
    public string Message;
    public static int abc; //これが保存されない
}

class MainClass
{
    //エントリポイント
    public static void Main()
    {
        //保存先のファイル名
        string fileName = @"C:\test.xml";
        //保存するクラス(SampleClass)のインスタンスを作成
        SampleClass cls = new SampleClass();
        cls.Message = "テストです。";
        cls.Number = 123;

        //XmlSerializerオブジェクトを作成
        //書き込むオブジェクトの型を指定する
        System.Xml.Serialization.XmlSerializer serializer =
            new System.Xml.Serialization.XmlSerializer(
                typeof(SampleClass));
        //ファイルを開く
        System.IO.FileStream fs =
            new System.IO.FileStream(fileName,
                System.IO.FileMode.Create);
        //シリアル化し、XMLファイルに保存する
        serializer.Serialize(fs, cls);
        //閉じる
        fs.Close();
    }
}

引用返信 編集キー/
■20490 / inTopicNo.2)  Re[1]: オブジェクトの内容をXMLファイルに保存
□投稿者/ じゅで (33回)-(2008/06/11(Wed) 10:04:05)
デフォルトでは、staticフィールドは、シリアライズできません。

http://www.comrade.co.jp/component/dotnetroom/kt_vsdn/kt_vs4c.htm

上のHPにシリアライズについての、方法がいくつかあります。

関連した質問がここにあったので、貼り付けておきます。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=17872&KLOG=35
引用返信 編集キー/
■20530 / inTopicNo.3)  Re[2]: オブジェクトの内容をXMLファイルに保存
□投稿者/ Jitta on the way (110回)-(2008/06/11(Wed) 18:17:52)
インスタンスの情報をシリアル化します。クラスの情報は、シリアル化する必要はありませんね。シリアル化解除する側が、すでに持っているのですから。
引用返信 編集キー/
■20536 / inTopicNo.4)  Re[1]: オブジェクトの内容をXMLファイルに保存
□投稿者/ Azulean (145回)-(2008/06/12(Thu) 00:25:08)
staticメンバーはオブジェクトの内容(メンバー)ではありません。
オブジェクトはクラスから複数作ることができますが、staticはクラスにつき1つしか存在しません。
よって、オブジェクトをシリアライズする方法ではstaticは対象になりません。

abcの内容をオブジェクトの一部としてシリアライズしたいのであれば、staticを外すなどの見直しをしてください。
staticである必要があるのであれば、オブジェクトの一部と考えないでください。
引用返信 編集キー/
■20538 / inTopicNo.5)  Re[2]: オブジェクトの内容をXMLファイルに保存
□投稿者/ tanaka (95回)-(2008/06/12(Thu) 08:12:52)
処理を変更して
staticメンバーを排除することにしました。

さまざまなご意見ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -