UWP开发:应用设置存储
应用设置储存指的是保存在应用程序储存区中的键/值对的字典集合,它自动负责序列化对象,并将其保存在应用程序里。以键/值对方式提供一种快速数据访问的方式,主要用于储存一些应用信息。
1,简介
应用设置是Windows10 中一种经过封装好的数据储存方式,它有着自身的一些特点,并且对储存的数据也有一定的限制,在使用应用设置之前需要非常清楚这些特点和限制才能很好的使用。
1)拥有容器的层次结构
指的是这些设置信息都在一个容器中,而容器还能嵌套容器,层层嵌套。在应用设置的应用数据储存内,每个应用拥有设置的根容器,通过相关API可以向根容器添加设置数据和新容器,创建新容器可便于组织各种设置数据,相当于一个分组的功能。一个容器最多嵌套32层深。
2)有本地和漫游两种设置类型
Windows 10 支持本地和漫游两种类型,本地是指数据只会存在于当前的客户端应用程序里面,漫游则是指数据会同步到其他设备的相同账号的客户端里。本地应用设置是在根容器ApplicationData.Current.LocalSettings下,而漫游应用设置是在根容器ApplicationData.Current.RoamingSettings下,只是存储的根目录不一样,其他API操作完全一样。
3)应用设置支持大多数Windows运行时的数据类型
应用设置所存储的数据不支持所有的类型,例如集合类型,自定义对象也不支持。应用设置支持大多数Windows运行时的数据类型,如下所示:
数值类型:UInt8、Int16、UInt16、Int32、UInt32、Int64、UInt64、Single、Double
布尔类型:Boolean
字符类型:Char16、String
事件类型:DataTime、TimeSpan
结构类型:GUID、Point、Size、Rect
组合类型:ApplicationDataCompositeValue
对于应用设置所不支持的类型,有两种解决办法,一是使用应用文件来存储,另一种是将数据序列化为一种受支持的数据类型,例如JSON。
2,应用设置操作
应用设置操作支持增、删、改、查这些基本的操作。首先要获取应用设置的容器对象ApplicationDataContainer。
ApplicationData类代表应用程序的数据类,由于一个应用程序只有一个ApplicationData对象,所以该类是使用单例模式来创建对象的,通过ApplicationData.Current属性可以获取单例对象。
1)添加和修改应用设置
在进行应用设置相关操作前,需要先获取应用的设置,下面代码获取本地应用设置容器:
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
获取容器后,将数据添加到应用设置,如果该应用设置已经存在,则对其进行修改。使用ApplicationDataContainer.Values属性可以访问上一步获取的LocalSettings容器中的设置,然后通过键/值对的方式来操作应用设置。以下语句创建了一个名为 testSetting 的设置:
localSettings.Values["testSetting"] = "Hello Windoes 10";
上面所显示的代码中,如果容器内没有"testSetting"key择新增一个,若已经存在择对原来的进行修改。
2)读取应用设置
同样使用ApplicationDataContainer.Values属性来获取应用设置的值。以下代码访问 localSettings 容器中的 testSetting 设置。
String value = localSetting.Value["testSetting"].ToString();
3)删除应用设置
通过ApplicationDataContainerSettings.Remove方法实现。
localSetting.Value.Remove("testSetting");
UWP开发:应用设置存储的更多相关文章
- Win 10 UWP开发系列:设置AppBarButton的图标
在WP8以前,页面最下面的四个小圆按钮是不支持绑定的,WP8.1 RT之后,系统按钮升级成了AppBarButton,并且支持绑定了.在Win10 UWP开发中,按钮的样式发生了变化,外面的圆圈没有了 ...
- Win10/UWP开发-Ink墨迹书写
在UWP开发中,微软提供了一个新型的InkCanvas控件用来让用户能书写墨迹,在新版的Edga浏览器中微软自己也用到了该控件使用户很方便的可以在web上做笔记. InkCanvas控件使用很简单,从 ...
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App
安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...
- UWP开发之控件:用WebView做聊天框
目录 说明 WebView存在的价值 使用WebView的几个重要技巧 使用WebView做的聊天框 说明 大家都知道,无论是之前的Winform.WPF还是现在的IOS.Android开发中,都存在 ...
- Win10 UWP 开发系列:使用SQLite
在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中.但如果数据多的话,还是需要本地数据库的支持.在UWP开发中 ...
- Win10/UWP开发—凭据保险箱PasswordVault
PasswordVault用户凭据保险箱其实并不算是Win10的新功能,早在Windows 8.0时代就已经存在了,本文仅仅是介绍在UWP应用中如何使用凭据保险箱进行安全存储和检索用户凭据. 那么什么 ...
- Win10/UWP开发—使用Cortana语音与App后台Service交互
上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...
- Win10/UWP开发—使用Cortana语音指令与App的前台交互
Win10开发中最具有系统特色的功能点绝对少不了集成Cortana语音指令,其实Cortana语音指令在以前的wp8/8.1时就已经存在了,发展到了Win10,Cortana最明显的进步就是开始支持调 ...
随机推荐
- hive-0.11.0安装
一.安装 . 下载安装hive hive-0.11.0.tar.gz(稳定版) 目录:/data tar –zxvfhive-0.11.0.tar.gz . 配置 把所有 ...
- Linux下搭建tomcat集群全记录
(转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...
- 2015年第六届蓝桥杯国赛试题(JavaA组)
1.结果填空 (满分15分)2.结果填空 (满分35分)3.代码填空 (满分31分)4.程序设计(满分41分)5.程序设计(满分75分)6.程序设计(满分103分) 1.标题:胡同门牌号 小明家住在一 ...
- HDU - 6113 2017百度之星初赛A 度度熊的01世界
度度熊的01世界 Accepts: 967 Submissions: 3064 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...
- 转载-聊一聊深度学习的activation function
目录 1. 背景 2. 深度学习中常见的激活函数 2.1 Sigmoid函数 2.2 tanh函数 2.3 ReLU函数 2.4 Leaky ReLu函数 2.5 ELU(Exponential Li ...
- 程序员收藏必看系列:深度解析MySOL优化(一)
说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理? ...
- 两数之和LeetCode
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元 ...
- MySQL的ibdata1文件占用过大瘦身
处理MySQL的ibdata1文件过大问题本人在对数据库进行大量的数据插入和删除的时候,发现ibdata1的占了将近一个T ibdata1文件是什么? ibdata1是一个用来构建innodb系统表空 ...
- 1e9个兵临城下(容斥原理)
链接:https://ac.nowcoder.com/acm/contest/321/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- Exception sending context destroyed event to listener instance of class
五月 29, 2019 6:29:39 下午 org.apache.catalina.core.StandardContext listenerStop严重: Exception sending co ...