欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c#XML序列化与反序列化.pdf

    • 资源ID:89816463       资源大小:6.80MB        全文页数:250页
    • 资源格式: PDF        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c#XML序列化与反序列化.pdf

    c#XML序列化与反序列化1乂 nJ/J lZ A A 4 r I J JLJJL11CUL)J L DJLJLJLiaLLJJL J不|,很不爽,只能改成了BinaryWriter和BinaryReader来读写,突然想到能不能用XML来序列化?于是在网上查了些资料便写了些实践性代码,做些记录,避免以后忘记。序列化对象public class PeopleXmlAttribute(nNAMEn)public string Name set;get;XmlAttribute(nAGEn)public int Age set;get;XmlRoot(nRootn)public class Student:PeopleXmlElement(nCLAS S)public string Class set;get;XmlElement(nNUMBERn)public int Number set;get;void Main(string args)Student stu 二 new Student()c oIIClass=Class One,Name=Tom,Number=1XmlSerializer ser=newXmlSerializer(typeof(Student);ser.Serialize(File.Create(nC:x.xml)stu);反序列化对象XmlSerializer ser 二 newXmlSerializer(typeof(Student);Student stu 二ser.Deserialize(File.OpenRead(nC:x.xmln)as Student;对象数组序列化public class PeopleXmlAttribute(nNAMEn)public string Name set;get;XmlAttribute(nAGEn)public int Age set;get;XmlRoot(nRootn)public class Student:PeopleXmlElement(nCLAS S)public string Class set;get;XmlElement(nNUMBERn)public int Number set;get;void Main(string args)List stuList 二new List();stuList.Add(new Student()Age=10,Number 二 1,Name 二”Tom Class Class Onen);stuList.Add(new Student()Age=11,Number 二 2,Name 二nJayn,Class=nClassTwon);stuList.Add(new Student()Age=12,Number 二 3,Name 二nPetn,Class=nClass Onen);stuList.Add(new Student()Age=13,Number 二 4,Name 二May,Class=Class Three”);stuList.Add(new Student()Age=14,Number 二 5,Name 二nSoyn,Class=nClassTwon);XmlSerializer ser 二 newXmlSerializer(typeof(List);ser.Serialize(File.Create(HC:x.xml 工 stuList);对象数组反序列XmlSerializer ser 二 newXmlSerializer(typeof(List);List stuList 二ser.Deserialize(File.OpenRead(nC:x.xmln)as List;fo9 ch (Student s in s tu L is t)MessageBox.Show(string.Format(n0:l:2:3s.Name,s.Age,s.Class,s.Number);序列化Dire tionarypublic struct DirectionListXmlAttribute(N ame)public string Name;XmlElement(n Value)public int Value;void Main(string args)Dictionary list二 new Dictionary();list.Add(nr,100);list.AddC2 200);list.Add(n3n,300);list.Add(n4n,400);list.Add(n5n,500);list.AddC6 600);list.Add(n7n,700);list.Add(n8n,800);list.AddC9 900);List dirList二 new List();foreach(var s in list)dirList.Add(newDirectionList()Name 二 s.Key,Value 二 s.Value);XmlSerializer ser 二 newXmlSerializer(typeof(List);ser.Serialize(File.Create(HC:x.xmldirList);I-L-/4 /Q I|1 7 I H,I。E 4 I)、7只能按照它的格式先创建一个可以别序列化的类型,这里我定义了一个结构体,当然你也可以定义成其他的类。将Dictionary。*中的数据依次放进结构体以后就可以放入流中了。XmlAttribute(nNamen)意思是将这个字段作为xml的房性,属性名 跟 在 中XmlElement(1*Valuen)意思是将这个字段做为xml的元素。反序列 化DirctionaryXmlSerializer ser 二 newXmlSerializer(typeof(List);List dirList=ser.Deserialize(File.OpenRead(nC:x.xmln)asList;foreach(var v in dirList)Console.WriteLine(n0:1 v.Name,v.Value);是这样了,没有太炫的地方,Deserialize反序列化。真希望.Net能集成Dirctionaryo对象,那我们这些懒人就方便了。在需要序列化的队伍中,数组是很常见的类型,其次就是图片了序列化图片public struct ImageStructXmlAttribute(nN umber)public int number;XmlElement(!f Imag en)public byte picture;void Main(string args)ImageStruct()number=1,picture=File.ReadAllBytes(n 11.jpgn);XmlSerializer ser 二 newXmlSerializer(typeof(ImageStruct);FileStream fs=File.Create(nc:x.xmln);fs.CloseQ;一样的,采用结构体来保存图片,这里我还加了个图片的名字,到时候查找起来也方便一些图片反序列化XmlSerializer ser 二 newXmlSerializer(typeof(ImageStruct);ImageStruct s=(ImageStruct)ser.Deserialize(File.OpenRead(nc:x.xmln);pictureBoxl.Image 二Image.FromStream(newMemory S tream(s.picture);I 4 I-7 7 I Q/7memorystream来做缓存,这样会比较快一点,实际上我并没有怎么感觉。图片数组序列化public struct ImageStructXmlAttribute(nN umber)public int number;XmlElement(!f Imag en)public byte picture;void Main(string args)ListimageList=newLi s t();imageList.Add(newImageStruct()number=1,picture=File.Read AIIB y te s(11.jpg)cimageList.Add(newImageStruct()number=2,picture=File.ReadAUBytes(n22.jpgn)cXmlSerializer ser 二 newXmlSerializer(typeof(List);FileStream fs=File.Create(nc:x.xmln);ser.Serialize(fs,imageList);fs.CloseQ;图片数组反序列化XmlSerializer ser 二 newXmlSerializer(typeof(List);List s 二(List)ser.Deserialize(File.OpenRead(nc:x.xmln);var im=from i in swhere i.number=1select i.picture;/var im=s.Where(p=p.number=l).Select(p=p.picture);foreach(var image in im)pictureBoxi.Image 二Image.FromStream(newMemoryStream(image);这里还对数组结构进仃Linq查询,这样就可以很方便的查询图片了。要序列化的对象的类:Serializablepublic class Personprivate string name;public string Namereturn name;Iname=value;

    注意事项

    本文(c#XML序列化与反序列化.pdf)为本站会员(奔***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开