1

私は WPF でテキストベースのゲームに取り組んでおり、MVVM を調査しています。現在、私のプロジェクトには、Adventurer と GameDate の 2 つのモデルがあります (この時点では、モデルであるべきかどうかは気にしていません。後で取り組みます)。ビューモデルMainViewModelとビューがありますMainViewMainViewコマンドの保存/読み込みにバインドされたボタンがあります...そして、それは私が立ち往生している場所のようなものです。バイナリ シリアライゼーションの形式を実装したいと考えています。機能するクラスObjectSerializerがあり、その適切な部分が Save コマンドと Load コマンドにありますMainViewModel、しかし、手動でインスタンス化したことがないため、シリアル化する必要があるクラスのインスタンス (この場合はモデル) へのアクセスを「取得」する方法がわかりません。さらに、それらをすべて 1 つのファイル (ゲームの典型的な「保存」ファイル) にシリアル化する方法を見つけたいと思います。

MVVM でのシリアライゼーションを扱ったことのある人は、このプロセスをガイドしてくれませんか? 進歩がなく、一日中これにこだわっていて、気が狂っています。誰かが何らかの例を示すことができれば、私は永遠にあなたの借金になります. 前もって感謝します; このこぶを乗り越える答えが評価されないことはありません。私は本当にここで努力しています...

ObjectSerializer.cs

    protected IFormatter iformatter;

    public ObjectSerializer()
    {
        this.iformatter = new BinaryFormatter();
    }

    public T GetSerializedObject(string filename)
    {
        if (File.Exists(filename))
        {
            Stream inStream = new FileStream(
                filename,
                FileMode.Open,
                FileAccess.Read,
                FileShare.Read);
            T obj = (T)this.iformatter.Deserialize(inStream);
            inStream.Close();
            return obj;
        }
        return default(T);
    }

    public void SaveSerializedObject(T obj, string filename)
    {
        Stream outStream = new FileStream(
            filename,
            FileMode.Create,
            FileAccess.Write,
            FileShare.None);
        this.iformatter.Serialize(outStream, obj);
        outStream.Close();
    }
4

1 に答える 1