WP7 逻辑删除的继承基类中的 MVVMLight ViewModelBase 公共无参数构造函数存在问题

2023-12-09

I am 通过转储我的 ViewModel 处理 Wp7 中的逻辑删除进入 PhoneApplicationService 状态(参见此链接以获取更多信息).

我的 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])吗?我不需要存储此类中的任何内容。

有没有办法解决?我不想编辑该程序集的源代码以将其标记为公共而不是受保护。


StyleCop 不赞成抽象类中的公共默认构造函数,这就是我将 ViewModelBase 设为受保护的原因。正如您所发现的,这会导致序列化问题。这个问题在 WP7 中更为严重,为了安全保存,很容易将整个虚拟机转储到序列化中。

现在,我可以建议的唯一解决方法是实现您自己的 viewmodelbase 类。我会考虑在未来的版本中将构造函数更改为公共。

干杯, 洛朗

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WP7 逻辑删除的继承基类中的 MVVMLight ViewModelBase 公共无参数构造函数存在问题 的相关文章

随机推荐