模板 10 导航服务序列化
Template 10 Navigation Service Serialization
我正在为我的 UWP 项目使用 Template10。在导航时传递参数时,我可以在我的 OnNavigated(NavigationEventArgs e) 中接收对象的序列化文本。
这是因为在调用 Navigate 方法时,Template10 导航服务序列化了对象。每次将参数传递给导航服务时,我是否必须反序列化。还有其他选择吗?
在查看页面中:
你需要自己反序列化
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string myString = Template10.Services.SerializationService.SerializationService.Json.Deserialize<string>(e.Parameter?.ToString());
}
在视图模型页面中:
反序列化已为您完成;只需将 parameter
对象转换为预期的类型。
public override Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
string myString = parameter?.ToString();
}
请记住,您可以序列化到导航服务中,但存在数据大小限制(大约 8kb?)。
在查看页面中:
Template10.Common.BootStrapper.Current.NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);
在视图模型页面中:
[Template10.MvvM.ViewModelBase.]NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);
对于大块数据,您必须寻求替代解决方案,例如会话缓存或类似的解决方案。
我正在为我的 UWP 项目使用 Template10。在导航时传递参数时,我可以在我的 OnNavigated(NavigationEventArgs e) 中接收对象的序列化文本。
这是因为在调用 Navigate 方法时,Template10 导航服务序列化了对象。每次将参数传递给导航服务时,我是否必须反序列化。还有其他选择吗?
在查看页面中:
你需要自己反序列化
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string myString = Template10.Services.SerializationService.SerializationService.Json.Deserialize<string>(e.Parameter?.ToString());
}
在视图模型页面中:
反序列化已为您完成;只需将 parameter
对象转换为预期的类型。
public override Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
string myString = parameter?.ToString();
}
请记住,您可以序列化到导航服务中,但存在数据大小限制(大约 8kb?)。
在查看页面中:
Template10.Common.BootStrapper.Current.NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);
在视图模型页面中:
[Template10.MvvM.ViewModelBase.]NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);
对于大块数据,您必须寻求替代解决方案,例如会话缓存或类似的解决方案。