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最明显的进步就是开始支持调 ...
随机推荐
- CF-839A
A. Arya and Bran time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- “找女神要QQ号码”——跟风篇java新手版(求指点)
吃完粽子后闲来无事,于是准备在园子里面看看.突然看到了一个“找女神要QQ号码”的文章,顿时精力充沛了~~^_^. 该文章楼主说明此算法来自于<啊哈!算法>,图文并茂,非常不错.<啊哈 ...
- android学习点滴一:android环境的搭建
东一点西一点,很多时间都浪费了.是该系统性的做好自己的东西了. <android学习点滴一:android环境的搭建> [环境变量]变量名:JAVA_HOME变量值:C:\Java\jdk ...
- day01-HTML(1)
一. 常用快捷键 Ctrl+c 复制 Ctrl+v 粘贴 Ctrl+x 剪切 Ctrl+a 全选 Ctrl+s 保存 Ctrl+z 撤销一步 Windows+d 返回桌面 Windows+e 我的电脑 ...
- 将Gridview导出到Excel
GridViewToExcel(EdceExcelGV, "application/ms-exce","xxxxxx表"); protected void Gr ...
- 关于/proc/cpuinfo文件
以上输出项的含义如下: processor :系统中逻辑处理核的编号.对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核.或者使用超线程技术虚拟的逻辑核 vendor_id :CPU ...
- [Xcode 实际操作]六、媒体与动画-(1)使用图形上下文按一定比例缩放图片
目录:[Swift]Xcode实际操作 本文将演示如何通过图形上下文,来实现图片缩放的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKi ...
- Node.js 内置模块crypto加密模块(1) MD5 和 SHA
MD5:消息摘要算法(Message-Digest Algorithm) SHA家族:安全散列算法( Secure Hash Algorithm ) 1.首先看一个简单的加密 "use st ...
- Exception inside CORBA when accessing a remote bean
http://stackoverflow.com/questions/23291520/exception-inside-corba-when-accessing-a-remote-bean
- Jmeter (二十六)逻辑控制器 之 Module Controller and Include Controller
Module Controller ---模块控制器 测试计划设置“独立运行没每个线程组” 线程组2中使用Module Controller执行线程组1中的Sampler: 紧接着,将线程组1disa ...