Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将列表保存到C uwp中的设置_C#_Save_Win Universal App_Settings_Listobject - Fatal编程技术网

C# 如何将列表保存到C uwp中的设置

C# 如何将列表保存到C uwp中的设置,c#,save,win-universal-app,settings,listobject,C#,Save,Win Universal App,Settings,Listobject,如何将列表保存到C uwp中的设置 为对象定义类 //class public class ListOfFile { public string File_DisplayName { get; set; } public string File_Name { get; set; } public string File_path { get; set; } public st

如何将列表保存到C uwp中的设置

为对象定义类

//class    

public class ListOfFile
        {
            public string File_DisplayName { get; set; }
            public string File_Name { get; set; }
            public string File_path { get; set; }
            public string File_Extension { get; set; }
            public StorageFile File_Storage { get; set; }
            public ImageSource File_Thumbnail { get; set; }
        }
定义加载文件的方法 方法:

结束行错误:

如何在设置中保存列表? 请帮帮我

别忘了这有局限性

每个设置的大小最多可达8K字节

您正在尝试存储

List<T> 
在设置中。 看一看支持的

那里不见了。看来你不能这样做。可能只有一些转换为对象时才会出现问题

请看一下有关此类似主题的解决方案:

更新:

您可以尝试用DataContractSerializer替换BinaryFormatter。 下面是一篇很好的文章,可能会对您有所帮助:

不要忘记它有局限性

每个设置的大小最多可达8K字节

您正在尝试存储

List<T> 
在设置中。 看一看支持的

那里不见了。看来你不能这样做。可能只有一些转换为对象时才会出现问题

请看一下有关此类似主题的解决方案:

更新:

您可以尝试用DataContractSerializer替换BinaryFormatter。 这里有一篇很好的文章可以帮助您:

UWP社区工具包-对象存储 我知道从最初的问题被问到现在已经有半年多了,但我希望我能早点发现UWP工具包,因为我有一个类似的情况,我想快速方便地存储一个简单的设备信息类列表,以便在漫游设置中漫游。把这篇文章贴在这里,以防它可能会被其他类似情况的人使用,比如OP和我自己

如果应用程序的目标是Windows 10 Build 10586或更高版本,则可以使用Microsoft提供的对象存储帮助程序来存储大小对象,其中还包括列表

可以通过将Microsoft.toolkit.Uwp NuGet包添加到Uwp项目来添加工具包

LocalObjectStorageHelper示例 RoamingObjectStorageHelper也可以这样做

重要注意事项 您可以使用Savekey,object和SaveFileAsynckey,object保存简单和复杂的对象,如列表

“保存”将根据您选择的存储辅助对象以本地/漫游设置存储对象;这意味着它受到数据约束,并且序列化对象的总大小必须小于8 KB

SaveFileAsync将对象作为序列化文件存储在应用程序的LocalState或RoamingState目录中,我相信以后可以使用ReadFileAsync访问。如果您的对象非常复杂,并且您希望序列化为大于8KB的大小,请使用此选项

重要警告 使用SaveFileAsync存储大型/复杂对象或对象列表时要小心。每个UWP应用程序仅分配100 KB的内存。如果超过配额,数据复制将停止。

UWP Community Toolkit-对象存储 我知道从最初的问题被问到现在已经有半年多了,但我希望我能早点发现UWP工具包,因为我有一个类似的情况,我想快速方便地存储一个简单的设备信息类列表,以便在漫游设置中漫游。把这篇文章贴在这里,以防它可能会被其他类似情况的人使用,比如OP和我自己

如果应用程序的目标是Windows 10 Build 10586或更高版本,则可以使用Microsoft提供的对象存储帮助程序来存储大小对象,其中还包括列表

可以通过将Microsoft.toolkit.Uwp NuGet包添加到Uwp项目来添加工具包

LocalObjectStorageHelper示例 RoamingObjectStorageHelper也可以这样做

重要注意事项 您可以使用Savekey,object和SaveFileAsynckey,object保存简单和复杂的对象,如列表

“保存”将根据您选择的存储辅助对象以本地/漫游设置存储对象;这意味着它受到数据约束,并且序列化对象的总大小必须小于8 KB

SaveFileAsync将对象作为序列化文件存储在应用程序的LocalState或RoamingState目录中,我相信以后可以使用ReadFileAsync访问。如果您的对象非常复杂,并且您希望序列化为大于8KB的大小,请使用此选项

重要警告
使用SaveFileAsync存储大型/复杂对象或对象列表时要小心。每个UWP应用程序仅分配100 KB的内存。如果超过配额,数据复制将停止。

您不应将整个文件和位图图像存储到设置中。这不是应用程序设置功能的正确使用。最多可以存储一个文件列表及其路径,这样可以在运行时读取内容并显示缩略图。如果你确实提到了你想要达到的目标,那么也许我们可以帮你更好一点

如果您确实需要在应用程序中存储整个文件,您可以选择或查看
您不应该将整个文件和位图图像存储到设置中。这不是应用程序设置功能的正确使用。最多可以存储一个文件列表及其路径,这样可以在运行时读取内容并显示缩略图。如果你确实提到了你想要达到的目标,那么也许我们可以帮你更好一点


如果您确实需要在应用程序中存储整个文件,您可以选择或寻找一种更便携的解决方案。

您可以尝试DataContractSerializer。我在我的答案中添加了另一个链接,可能会对你有所帮助。谢谢。现在使用序列化程序保存storagefile时出现问题,您可以尝试使用DataContractSerializer。我在我的答案中添加了另一个链接,可能会对你有所帮助。谢谢。现在,使用序列化程序保存storagefile时出现问题
List<T> 
var helper = new LocalObjectStorageHelper();

// Read simple objects
string keySimpleObject = "simple";
if (helper.KeyExists(keySimpleObject))
{
    string result = helper.Read<string>(keySimpleObject);
}

// Save simple objects
helper.Save(keySimpleObject, 47);

// Read complex/large objects 
string keyLargeObject = "large";
if (await helper.FileExistsAsync(keyLargeObject))
{
    var result = await helper.ReadFileAsync<MyLargeObject>(keyLargeObject);
}

// Save complex/large objects 
var o = new MyLargeObject
{
    ...
};
await helper.SaveFileAsync(keySimpleObject, o);