首页 > 其他分享 >UWP的 LocalSettings简介

UWP的 LocalSettings简介

时间:2023-05-26 16:12:26浏览次数:44  
标签:容器 ApplicationDataContainer 简介 UWP Values ApplicationData LocalSettings localSet

UWP程序的AppData一般位于 C:\Users\<UserName>\AppData\Local\Packages\<PackageFamilyName>目录下,该目录包含如下内容

常用的两个目录为:LocalStateSettings,其中LocalState主要用来存储本地的文件如Log等内容。Settings目录下的settings.dat则对应于ApplicationDataContainer,即Windows.Storage.ApplicationData.Current.LocalSettings

ApplicationDataContainer作为数据容器,它的层级结构和文件目录类似,其中可以直接包含Key-Value,也可以嵌套的包含子容器ApplicationDataContainer
其主要API及用法总结如下:

1. 直接存储 Key-Value 在 ApplicationData.Current.LocalSettings的容器中(根容器)

直接在LocalSettings上操作Key-Vlaue,此时所有的值都在 localSettings.Values

ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;

// 1.写入:若不存在则直接创建并写入,若存在则直接覆盖
localSettings.Values["key01"] = "val01";

// 读取:根据key值来读取对应的value值,需要注意若无对应的值,可能会抛异常
// 2-1. 先判断是否存在该key-value,若存在再去读取。
if (!localSettings.Values.ContainsKey("key02"))
{
    string val02 = localSettings.Values["key02"].ToString();
}

// 2-2. 使用TryGetValue 避免不存在时抛异常,若不存在则 bRes=false
object val03;
bool bRes = localSettings.Values.TryGetValue("key03", out val03);

// 3. 删除指定的 key-value(需先判断是否存在)
localSettings.Values.Remove("key01");

// 4. 清除该容器中所有的数据
localSettings.Values.Clear();

2. 子容器中操作数据

首先获取根数据容器ApplicationData.Current.LocalSettings,可以在根数据容器上创建和删除对应的子容器。如下的代码中 localSettings.Containers["myContainer"]subLocalSettings表示新创建的同一个子容器。

// 获取根数据容器,根容器无法删除
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;

// 创建子容器:若已存在则直接返回子容器,若不存在则直接创建对应的子容器
ApplicationDataContainer subLocalSettings = localSettings.CreateContainer("myContainer", ApplicationDataCreateDisposition.Always);

// 可以通过 localSettings 和 subLocalSettings来操作该子容器
if (localSettings.Containers.ContainsKey("myContainer"))
{
    localSettings.Containers["myContainer"].Values["subKey01"] = "subVal01";
    subLocalSettings.Values["subKey02"] = "subVal02";
}

if(subLocalSettings.Values.ContainsKey("subKey01"))
{
    string v01 = subLocalSettings.Values["subKey01"].ToString();
}

// 删除指定的容器
localSettings.DeleteContainer("myContainer");


【参考资料】

  1. ApplicationData.LocalSettings
  2. ApplicationDataContainer

标签:容器,ApplicationDataContainer,简介,UWP,Values,ApplicationData,LocalSettings,localSet
From: https://www.cnblogs.com/Jeffxu/p/17435004.html

相关文章

  • ProtoBuf简介
    proto简介一、protobuf的定义protobuf是一种用于序列化结构数据的工具,实现数据的存储与交换,与编程语言和开发平台无关。序列化:将结构数据或者对象转换成能够用于存储和传输的格式。反序列化:在其他的计算环境中,将序列化后的数据还原为结构数据和对象。定义数据的结构,然后使用p......
  • Singleton 单例模式简介与 C# 示例【创建型】【设计模式来了】
     〇、简介1、什么是单例模式?一句话解释:  单一的类,只能自己来创建唯一的一个对象。单例模式(SingletonPattern)是日常开发中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时......
  • C语言——简介
    C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序......
  • npm简介
    npm(NodePackageManager)是Node.js的包管理器,它是随同Node.js一起安装的。npm允许开发者在自己的项目中方便地安装、更新、卸载和管理各种开源的Node.js模块。使用npm,你可以通过命令行界面(CLI)执行以下常用操作:1.安装包:通过`npminstall`命令安装指定的包。例如:npminstallpa......
  • C++ 简介
     C++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C++被认为是一种中级语言,它综合了高级语言和低级语言的特点。C++是由BjarneStroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++进......
  • GB28181协议简介
    1、GB/T28181—2016协议简介近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪费。各地视频大规模建设后,省级、国家级集中调阅,对重特大事件通过......
  • 《workflow跳远》activiti篇——activiti简介入门
    工作流为什么出现最初,开发人员开发一个流程,例如请假流程,员工提出请假申请——领导同意——财务人员记录,一般通过状态字段来跟踪流程变化,设zt=0为初始状态,zt=1为保存状态,zt=2提交到领导,zt=3提交到财务,zt=4财务人员记录完成。员工、领导、财务人员这些不同角色,通过状态字段的取值决......
  • DOS简介及常用命令汇总
    1.什么是DOSDOS是英文DiskOperatingSystem的缩写,即为磁盘操作系统,两者是完全一样的概念。 DOS还能有效地管理各种软硬件资源,对它们进行合理的调度,所有的软件和硬件都在DOS的监控和管理之下,有条不紊地进行着自己的工作。 在windows操作系统中,最常见的DOS是MS-DOS,它是个人......
  • (个人简介)Coding Home - 漂流瓶jz
    个人简介:华东师范大学计算机专业硕士。目前是Web前端开发。GitHub    jzplp(漂流瓶jz)·GitHub新浪博客   漂流瓶jz_新浪博客......
  • python的守护线程(简介、作用及代码实例)
    转载:(14条消息)python的守护线程(简介、作用及代码实例)_python守护线程的作用_HXH.py的博客-CSDN博客python守护线程简介守护线程的理解:如果当前python线程是守护线程,那么意味着这个线程是“不重要”的,“不重要”意味着如果他的主进程结束了但该守护线程没有运行完,守护进程就会被......