私は WPF でテキストベースのゲームに取り組んでおり、MVVM を調査しています。現在、私のプロジェクトには、Adventurer と GameDate の 2 つのモデルがあります (この時点では、モデルであるべきかどうかは気にしていません。後で取り組みます)。ビューモデルMainViewModel
とビューがありますMainView
。MainView
コマンドの保存/読み込みにバインドされたボタンがあります...そして、それは私が立ち往生している場所のようなものです。バイナリ シリアライゼーションの形式を実装したいと考えています。機能するクラス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();
}