gpt4 book ai didi

windows-phone-7 - Caliburn.Micro 1.1 中的自定义序列化

转载 作者:行者123 更新时间:2023-12-04 06:20:20 25 4
gpt4 key购买 nike

我正在将 1.0 WP7 应用程序升级到 CM 1.1。除其他外,我正在删除旧的基于属性的墓碑并实现存储类。

这通常涉及为每个 VM 创建一个用于存储目的的类,从 StorageHandler<T> 派生它。 (其中 T 是 VM 的类型)并覆盖其 Configure方法如:

public override void Configure()
{
Property(x => x.SomeSerializableProperty).InPhoneState().RestoreAfterViewLoad();
// ...
}

在这种情况下,如何使用我自己的序列化/反序列化代码为无法自动序列化的对象实现自定义序列化机制?例如,我的一个 VM 有 StrokeCollection属性,我想序列化其中的笔画,但为此我需要替换会引发安全异常的默认机制。

谁能展示一个假的 CM WP7 示例来说明如何自定义某些属性的序列化,以便我可以放置自己的代码来对其进行序列化/反序列化?
谢谢!

最佳答案

我不知道这是否是正确的道路,但它有效;这是一个代码示例:

Property(x => x.Strokes).InPhoneState().RestoreAfterViewReady().Configure(x =>
{
x.Save = SaveStrokes;
x.Restore = RestoreStrokes;
});

他们的实现如:
void SaveStrokes(BoardViewModel vm, Func<string> serialize, StorageMode nMode)
{
IsolatedStorageSettings.ApplicationSettings[vm.DisplayName + "ThePropertyKey"] =
// ...get data from vm and serialize
}

相反:
void RestoreStrokes(BoardViewModel vm, Func<string> serialize, StorageMode nMode)
{
// use IsolatedStorageSettings.ApplicationSettings[vm.DisplayName + "ThePropertyKey"]
// to check if the key exists, and if it is there get the serialized data and deserialize
}

至于笔画,我使用我自己的序列化类作为我为此目的的常用工具(SharpSerializer)似乎在恢复时有问题(它抛出一个不明确的匹配反射异常)。

关于windows-phone-7 - Caliburn.Micro 1.1 中的自定义序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666455/

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