WP7 Tombstoning的继承基类中MVVMLight ViewModelBase公共无参数构造函数的问题

时间:2010-10-20 08:56:07

标签: serialization windows-phone-7

handling tombstoning in Wp7 by dumping my ViewModel进入PhoneApplicationService状态(请参阅此link for more info)。

我的ViewModel(VM)继承自MVVM Light Toolkit(ViewModelBase),它只有一个受保护的无参数构造函数。

这导致血清化失败:

"The type 'GalaSoft.MvvmLight.ViewModelBase' cannot be deserialized in partial trust because it does not have a public parameterless constructor."

请原谅我的无知,但序列化对我来说是新的 - 我想我明白为什么它失败了,但我想要想办法绕过它。例如,我可以将整个基类标记为不可修改或忽略,就像我在类中的某些字段([IgnoreDataMember])一样吗?我不需要存储此类中的任何内容。

这周围有吗?我不想编辑该程序集的源代码以将其标记为公共而不是受保护。

1 个答案:

答案 0 :(得分:4)

抽象类中的公共默认构造函数受到StyleCop的不满,这就是我对ViewModelBase进行保护的原因。如您所知,这会导致序列化问题。这个问题在WP7中更为尖锐,因为它很容易将整个vm转储到序列化中以便安全保存。

现在,我可以提出的唯一解决方案是实现自己的viewmodelbase类。我将考虑在将来的版本中将构造函数更改为public。

干杯, 劳伦