(3)[wp7数据存储] WP7 IsolatedStorage系列篇——通过XmlSerializer读写XML文件 [复制链接]...

发表于 2012-5-17 15:51:07 |只看该作者 |倒序浏览
分享到:

 

本帖最后由 agameboy 于 2012-5-17 17:08 编辑

这一篇我们会通过XmlSerializer读写XML文件,跟多的相关文章请参考WP7 IsolatedStorage系列篇!
需要的命名空间:
using System.IO;
using System.IO.IsolatedStorage;
using System.Xml;
using System.Xml.Serialization;

注意你需要在项目中添加System.Xml.Serialization引用,不然那你就无法实现喽!!

写一个Person类:

  1. public class Person
  2.     {
  3.         string firstname;
  4.         string lastname;
  5.         int age;
  6.         public string FirstName
  7.         {
  8.             get { return firstname; }
  9.             set { firstname = value; }
  10.         }
  11.         public string LastName
  12.         {
  13.             get { return lastname; }
  14.             set { lastname = value; }
  15.         }
  16.         public int Age
  17.         {
  18.             get { return age; }
  19.             set { age = value; }
  20.         }
  21.     }
复制代码


下面为一个序列化方法:

  1. private List<Person> GeneratePersonData()
  2.         {
  3.             List<Person> data = new List<Person>();
  4.             data.Add(new Person() { FirstName ="Kate",LastName ="Brown",Age=23});
  5.             data.Add(new Person() { FirstName = "Kitty", LastName = "Brown", Age = 22 });
  6.             data.Add(new Person() { FirstName = "Mic", LastName = "Brown", Age = 21 });
  7.             return data;
  8.         }
复制代码


保存XML文件:

  1. private void button1_Click(object sender, RoutedEventArgs e)
  2.         {
  3.             XmlWriterSettings xmlwriterSettings = new XmlWriterSettings();
  4.             xmlwriterSettings.Indent = true;//缩进
  5.             using(IsolatedStorageFile iso=IsolatedStorageFile.GetUserStoreForApplication ())
  6.             {
  7.                 using(IsolatedStorageFileStream isoStream=iso.OpenFile("People.xml",FileMode.Create))
  8.                 {
  9.                     XmlSerializer serializer = new XmlSerializer(typeof(List<Person>));
  10.                     using (XmlWriter xmlWriter = XmlWriter.Create(isoStream, xmlwriterSettings))
  11.                     {
  12.                         serializer.Serialize(xmlWriter, GeneratePersonData());
  13.                     }
  14.                 }
  15.             }
  16.         }
复制代码


读取XML文件:

  1. private void button2_Click(object sender, RoutedEventArgs e)
  2.         {
  3.            using(IsolatedStorageFile iso=IsolatedStorageFile.GetUserStoreForApplication ())
  4.            {
  5.                 using(IsolatedStorageFileStream isoStream=iso.OpenFile("People.xml",FileMode.Open))
  6.                 {
  7.                     XmlSerializer serializer=new XmlSerializer (typeof(List<Person>));
  8.                     List<Person> data = (List<Person>)serializer.Deserialize(isoStream);
  9.                     listBox1.ItemsSource = data;
  10.                 }
  11.            }
  12.         }
复制代码


Binding ListBox:
  1. <ListBox Height="532" HorizontalAlignment="Left" Margin="0,69,0,0" Name="listBox1" VerticalAlignment="Top" Width="450" >
  2.                 <ListBox.ItemTemplate>
  3.                     <DataTemplate >
  4.                         <StackPanel Margin="10" >
  5.                             <TextBlock Height="30"  Name="textBlock1" Text="{Binding FirstName}" />
  6.                             <TextBlock Height="30"  Name="textBlock2" Text="{Binding LastName}"  />
  7.                             <TextBlock Height="30"  Name="textBlock3" Text="{Binding Age}"/>
  8.                         </StackPanel>
  9.                     </DataTemplate>
  10.                 </ListBox.ItemTemplate>
  11.             </ListBox>
复制代码


提示:当进行文件操作的时候始终使用using关键字,using结束后会隐式调用Disposable方法,清理非托管资源。

转载于:https://www.cnblogs.com/Belling/archive/2012/11/29/2794597.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SaltStack WEB UI Halite初体验

闲来无聊&#xff0c;话说saltstack webui halite还一直没玩&#xff0c;于是就凑今天体验一把&#xff1b;很多尝鲜的同学都说halite的功能较少&#xff0c;而其也正符合其说明console&#xff0c;不过其UI我还是蛮喜欢的&#xff0c;个人觉得比较清新简洁、挺好下面就来安装体…

Envoy熔断限流实践(二)Rainbond基于RLS服务全局限流

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

UV坐标

1.什么是uv坐标 所有的图象文件都是二维的一个平面。水平方向是U&#xff0c;垂直方向是V&#xff0c;通过这个平面的&#xff0c;二维的UV坐标系。我们可以定位图象上的任意一个象素。但是一个问题是如何把这个二维的平面贴到三维的NURBS表面和多边形表面呢&#xff1f; 对于N…

再说WCF Data Contract KnownTypeAttribute

WCF 中的序列化是用DataContractSerializer,所有被[DataContract]和[DataMemeber]标记的类和属性会被DataContractSerializer序列化。在WCF中使用Contract模式来分辨和指定序列化/反序列化的类型&#xff0c;它是通过http://xmlns/Class这样的命名空间来标识这个序列化的对象的…

pyinotify结合ftplib自动上传新建的文件

应用场景&#xff1a;从国内往国外上传&#xff0c;因国际带宽影响&#xff0c;速度很慢&#xff0c;于是做了一个中转FTP&#xff0c;而自动上传需求也就诞生了。代码地址&#xff1a;https://github.com/coocla/linux/blob/master/ftp/autoupload_ftp.py sftp类型&#xff1…

EFCore 的 DbFirst 模式

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

PHP读取sphinx实例

阅读原文&#xff1a;http://yzswyl.cn/blread-1611.html 1.未采用mysql二进制网络协议的代码&#xff1a; //检查sphinx是否能连接&#xff0c;不能重试两次&#xff0c;能则连接,不用mysql协议,仅供参考 function checkSphinxNoMysql() {$flag true;$retries 0;while ( $fl…

linux使用flock解决crontab任务冲突

Linux的crontab最小的间隔是每分钟执行一次&#xff0c;但是如果在这一分钟之内&#xff0c;之前的命令并没有执行完成呢&#xff1f;这样就会产生冲突。接下来我介绍一个解决冲突的办法&#xff0c;那就是linux的flock文件锁. 格式&#xff1a; flock [-sxun][-w #] fd# flock…

golang bufio解析

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

TAppEncoder的main函数

TAppEncoder是编码器工程&#xff0c;完成视频序列的编码。 运行时&#xff0c;首先调用encmain.cpp中的main函数 main函数中完成的工作主要有初始化encoder类&#xff0c;解析cfg文件&#xff0c;然后调用TAppEncTop::encode函数进入下一层&#xff0c;并且对编码过程进行计时…

【mq】从零开始实现 mq-01-生产者、消费者启动

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

远程连接Ubuntu桌面配置

1、打开终端&#xff1a;依次安装 sudo apt-get install xrdpsudo apt-get install vnc4server tightvncserversudo apt-get install xubuntu-desktop 2、安装完&#xff1a;xubuntu-desktop之后&#xff0c;做如下配置以及启动 roothd-slave2:jvm# echo "xfce4-session&q…

【大话云原生】微服务篇-五星级酒店的服务方式

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

从C#到TypeScript - Generator

从C#到TypeScript - Generator 上篇讲了Promise&#xff0c;Promise的执行需要不停的调用then&#xff0c;虽然比callback要好些&#xff0c;但也显得累赘。所以ES6里添加了Generator来做流程控制&#xff0c;可以更直观的执行Promise&#xff0c;但终级方案还是ES7议案中的asy…

C#中检查null的语法糖

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

iOS UItextView监听输入特定字符跳转页面选择选项返回

今天有朋友问我一个需求的实现,于是自己写了一个Demo简单的实现了一下: 需求是: 1>比如: 检测用户输入"A"字符串,跳转页面选择选项,将选择的选项放置textView里,作为当前的输入; 2>不是"A"字符,则正常的textView输入; 3.用户跳转选择了,则将选择的输…

PDCA循环——快速提升软件质量的必备工具

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

oracle 表空间 用户

-- create user mapecun identified by "accp"; --alter user 用户名 quota unlimited on 表空间; --alter user mapecun quota unlimited on USERS; --grant create sequence to mapecun; /** grant create session to mapecun; grant create table to mapecun; g…

如何在Web前端实现CAD图文字全文搜索功能之技术分享

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

基于Java (spring-boot)的仓库管理系统

一、项目介绍 本系统的使用者一共有系统管理员、仓库管理员和普通用户这3种角色: 1.系统管理员&#xff1a;通过登录系统后&#xff0c;可以进行管理员和用户信息的管理、仓库和物品分类的管理&#xff0c;以及操作日志的查询&#xff0c;具有全面的系统管理权限。 2.仓库管理…