模板10导航服务序列化 [英] Template 10 Navigation Service Serialization
问题描述
我正在为我的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屋!