FileOpenPicker:无法将复杂类型添加到 ContinuationData

本文关键字:类型 添加 ContinuationData 复杂 FileOpenPicker | 更新日期: 2023-09-27 18:33:12

我无法将自定义类型添加到FileOpenPicker中的ContinuationData。我可以添加字符串/int/datetime,但是当我尝试添加自定义 CustomFolder 对象时,它失败并出现以下异常。

CustomFolder TargetFolde = new CustomFolder()
FileOpenPicker open = new FileOpenPicker();
open.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
open.ViewMode = PickerViewMode.Thumbnail;
// Filter to include a sample subset of file types
open.FileTypeFilter.Clear();
open.FileTypeFilter.Add(".bmp");
open.FileTypeFilter.Add(".png");
open.FileTypeFilter.Add(".jpeg");
open.FileTypeFilter.Add(".jpg");
KeyValuePair<string, object> fold = new KeyValuePair<string, object>("Folder", TargetFolder);
open.ContinuationData.Add(fold);
open.PickMultipleFilesAndContinue();
}

{系统异常:不支持此类型的数据。(例外情况 结果: 0x8007065E( 在 System.Runtime.InteropServices.WindowsRuntime.IMap 2.Insert(K key, V value) at System.Runtime.InteropServices.WindowsRuntime.MapToDictionaryAdapter.Insert[K,V](IMap 2 _this, K 键, V 值( at System.Runtime.InteropServices.WindowsRuntime.MapToDictionaryAdapter.Add[K,V](K 键,V 值(在 System.Runtime.InteropServices.WindowsRuntime.MapToCollectionAdapter.Add[K,V](KeyValuePair'2 项(在Lockie.Shared.Util.d__1b。移动下一个(( --- 从引发异常的先前位置的堆栈跟踪结束 --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task 任务(在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task( at System.Runtime.CompilerServices.TaskAwaiter.GetResult((
at Lockie.Folder.d__5.MoveNext((}

FileOpenPicker:无法将复杂类型添加到 ContinuationData

只允许使用基本类型。WinRT 不提供像 .NET 这样的序列化机制

您可以使用 XML 或 JSON 自行序列化数据,并将其存储为字符串。