模板10导航服务序列化 [英] Template 10 Navigation Service Serialization

查看:46
本文介绍了模板10导航服务序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的UWP项目使用Template10.在导航时传递参数时,我可以在OnNavigated(NavigationEventArgs e)处接收对象的序列化文本.

I am using Template10 for my UWP project. When passing a parameter while navigation, I can receive a serialized text of my object at my OnNavigated(NavigationEventArgs e).

这是因为在调用Navigate方法时,Template10导航服务会序列化对象.每次将参数传递给导航服务时,我是否都必须取消序列化.还有其他选择吗?

This is because on calling Navigate method, Template10 navigation service serializes the object. Do I have to deserailize every-time passing a parameter to Navigation service. Is there any alternative?

推荐答案

在视图页面中:

您需要反序列化

In view page:

You need to deserialize yourself

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string myString = Template10.Services.SerializationService.SerializationService.Json.Deserialize<string>(e.Parameter?.ToString());
}

在视图模型页面中:

反序列化已为您完成;只需将parameter对象转换为预期的类型.

In view-model page:

Deserialization is done for you; just cast the parameter object to the expected Type.

public override Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
    string myString = parameter?.ToString();
}

请记住,您可以序列化到导航服务中有一个数据大小限制(大约8kb?).

Remember that there is a data size limit (about 8kb?) you can serialize into Navigation service.

 Template10.Common.BootStrapper.Current.NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);

在视图模型页面中:

[Template10.MvvM.ViewModelBase.]NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);

对于大块数据,您必须寻求替代解决方案,例如会话缓存或类似的东西.

For big chunk of data you've to seek an alternative solution such as session cache or something similar.

这篇关于模板10导航服务序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆