我正在WPF中开发一个基于文本的游戏,我正在探索MVVM.目前我的项目中有2个模型,Adventurer和GameDate(我不关心这个应该或不应该是什么模型.我稍后会解决这个问题).我有一个viewmodel MainViewModel和一个视图MainView.MainView有按钮绑定保存/加载命令......这就是我被卡住的地方.我非常想实现一种二进制序列化的形式; 我有一个ObjectSerializer函数类,其中相应的部分在Save和Load命令中MainViewModel,但我不知道如何'获取'访问需要序列化的类的实例(在这种情况下是模型因为我从来没有手动实例化它们中的任何一个.此外,我想找到一种方法将它们全部序列化在一个文件中(游戏的典型"保存"文件).
任何在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();
}
Run Code Online (Sandbox Code Playgroud)