gpt4 book ai didi

serialization - WP7 墓碑的继承基类中的 MVVMLight ViewModelBase 公共(public)无参数构造函数问题

转载 作者:行者123 更新时间:2023-12-04 05:35:30 26 4
gpt4 key购买 nike

我是handling tombstoning in Wp7 by dumping my ViewModel进入 PhoneApplicationService 状态(参见 link for more info )。

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

这会导致序列化失败:

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

请原谅我的无知,但序列化对我来说是新事物 - 我想我明白它失败的原因,但我正在努力想办法解决它。例如,我能否将整个基类标记为不可序列化或忽略,就像我对类中的某些字段所做的那样 ([IgnoreDataMember])?我不需要存储此类中的任何内容。

这附近有什么吗?我不想编辑该程序集的源代码以将其标记为公开而不是 protected 。

最佳答案

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

现在,我能建议的唯一解决方法是实现您自己的 View 模型基类。我会考虑在未来的版本中将构造函数更改为 public。

干杯,洛朗

关于serialization - WP7 墓碑的继承基类中的 MVVMLight ViewModelBase 公共(public)无参数构造函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com