【发布时间】:2012-11-23 15:29:37
【问题描述】:
我正在创建具有 DocumentViewModel 类的小型图形编辑器(继承自我的 PaneViewModel 类,该类继承自 GalaSoft.MVVMLIGHT.ViewModelBase)。 DocumentViewModel 代表一个图像(应用程序一次可以处理几个图像,所以我决定收集 DocumentViewModel)。我想在保存项目时序列化 DocumentViewModel 并在加载项目时反序列化。但是我不能这样做,因为应用程序在序列化时抛出异常(“GalaSoft.MvvmLight.ViewModelBase 未标记为可序列化)。这个问题有什么解决方法吗?使用序列化作为加载/保存机制是否正确?
【问题讨论】:
-
为什么需要序列化视图模型?
-
因为它包含有关文档的全部信息 - 空间区域(包装到类中的可写位图)、标题、历史记录、图层,我想保存此文档(序列化为项目文件)并加载(反序列化) .
-
MVVM 代表模型 - 视图 - 视图模型,您的数据在哪里,模型和视图模型只是模型和视图之间的层。您应该考虑一下您的数据(模型)是什么并对其进行序列化和反序列化。
-
在我的例子中,数据本身就是一个视图模型。所以我需要序列化它。有什么建议吗?
标签: c# serialization mvvm-light