当前位置: 首页 > news >正文

新开传奇网站发布站三端互通网络科技有限公司实习报告

新开传奇网站发布站三端互通,网络科技有限公司实习报告,机械公司简介模板,做网站翻页怎么做什么是序列化以及如何实现序列化#xff1f;序列化是通过将对象转换为字节流#xff0c;从而存储对象或将对象传输到内存#xff0c;数据库或文件的过程。主要用途是保存对象的状态#xff0c;包括对象的数据#xff0c;以便能够在需要是重建对象。反向过程称为 反序列化。… 什么是序列化以及如何实现序列化序列化是通过将对象转换为字节流从而存储对象或将对象传输到内存数据库或文件的过程。主要用途是保存对象的状态包括对象的数据以便能够在需要是重建对象。反向过程称为 反序列化。 如上图所示对象 object 被序列化为 流其中不仅包含数据、还包含对象类型的相关信息如版本、区域性和程序集名称。然后可以将此流中的内容存储到数据库、文件或内存中。 序列化的用途通过序列化可以执行如下操作通过 Web 服务将对象发送到远程应用程序、在域之间传递对象、以 XML 字符串的形式传递对象通过防火墙、跨应用程序维护安全性或用户专属信息。 让对象可序列化需要具有对象、包含已序列化对象的一个流以及一个 Fromatter。System.Runtime.Serialization 包含序列化和反序列化对象所必须的类。将 SerializableAttribute 特性应用于某个类型以表示此类型的实例可以被序列化如果对没有 SerializableAttribute 特性的类型进行序列化则会引发异常。如果想让类中的某个字段不可序列化可以使用 NonSerializedAttribute 特性。 序列化的三种类型--二进制、XML、JSON可以使用二进制 binary 或 XML 进行序列化在 二进制序列化中所有内容都会被序列化且性能也很好使用二进制编码来生成精简的序列化可以用于基于存储或socket的网络流。XML 序列化可提高可读性以及对象共享和使用的灵活性XML 序列化将对象的公共字段和属性或方法的参数和返回值序列化成符合特定 XML 格式的流System.Xml.Serialization 包含序列化和反序列化 XML 所需要的类如果要保存运行程序过程的数据要么保存到数据库中,要么新建一个普通的文件,然后把数据保存进去.但是这两者有个缺点就是,不能把原有数据的结构也保存进去.比如一个类中的字段值保存进去后再读取出来必须再解析下才行.序列化技术让你省去了解析的过程.保存后再读取时直接得到一个class序列化的方式有三种:BinaryFormatter,SoapFormatter,XmlSerializer1.BinaryFormatter保存成二进制数据流.用法示例:using System.IO; using System.Runtime.Serialization.Formatters.Binary; [Serializable] //如果要想保存某个class中的字段,必须在class前面加个这样attribute(C#里面用中括号括起来的标志符) public class Person { public int age; public string name; [NonSerialized] //如果某个字段不想被保存,则加个这样的标志 public string secret; } 序列化:classProgram {staticvoid Main(string[] args) { Person person newPerson(); person.age 18; person.name tom; person.secret i will not tell you; FileStream stream newFileStream(c:\temp\person.dat,FileMode.Create); BinaryFormatter bFormat newBinaryFormatter(); bFormat.Serialize(stream, person); stream.Close(); }反序列化:classProgram { staticvoid Main(string[] args) { Person person newPerson(); FileStream stream newFileStream(c:\temp\person.dat,FileMode.Open); BinaryFormatter bFormat newBinaryFormatter(); person (Person)bFormat.Deserialize(stream); //反序列化得到的是一个object对象.必须做下类型转换 stream.Close(); Console.WriteLine(person.age person.name person.secret); //结果为18tom.因为secret没有有被序列化. }2.SoapFormatter把数据保存成xml文件.里面除了保存的内容还有些额外的Soap信息.它的用法和BinaryFormatter一样.只要把BinaryFormatter都替换成SoapFormatter就行.把文件名改为person.xml另外就是添加名称空间:using System.Runtime.Serialization.Formatters.Soap;这个名称空调对就的程序集有时VS没有自动引用.你必须手动去引用.选中project,右击选择Add Reference.在.NET的标签下选择System.Runtime.Serialization.Formatters.Soap.然后点OK.补充:SOAPSimple Object Access Protocol 简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议是一个基于XML的协议它包括四个部分SOAP封装(envelop)封装定义了一个描述消息中的内容是什么是谁发送的谁应当接受并处理它以及如何处理它们的框架SOAP编码规则encoding rules用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation)表示远程过程调用和应答的协定;SOAP绑定binding使用底层协议交换信息。3.XmlSerializer也是保存成XML文件.但没有其他额外信息.另外它只能保存public类型的字段.而其他两种类型能保存所有类型的字段.这里仍使用上面的Person类.实例1添加名称空间:using System.IO; using System.Xml.Serialization; 序列化:classProgram {staticvoid Main(string[] args) { Person person newPerson(); person.age 18; person.name tom; person.secret i will not tell you; FileStream stream newFileStream(c:\temp\xmlFormat.xml,FileMode.Create); XmlSerializer xmlserilize newXmlSerializer(typeof(Person)); xmlserilize.Serialize(stream, person); stream.Close(); }反序列化:classProgram { staticvoid Main(string[] args) { Person person newPerson(); FileStream stream newFileStream(c:\temp\xmlFormat.xml,FileMode.Open); XmlSerializerxmlserilize newXmlSerializer(typeof(Person)); person (Person)xmlserilize.Deserialize(stream); stream.Close(); Console.WriteLine(person.age person.name person.secret); }指定 XML 标签的名字[XmlRoot(department)] public class Department {public string DeptName { get; set; }[XmlElement(extra)]public DeptExtraInfo DeptExtraInfo { get; set; } } 通过在 XmlRoot、XmlElement 后面加上一个括号即可实现其中XmlRoot用于指定“根”也就是XML的最上一层的Tag指定 XML 标签的属性[XmlRoot(department)] public class Department {public string DeptName { get; set; } 研发部;[XmlAttribute(timestamp)]public int Timestamp 10; } Timestamp就成为了department这个根节点的timestamp属性。实例2public class Book { public String title; } public void ReadXML() { // First write something so that there is something to read ... var b new Book { title Serialization Overview }; var writer new System.Xml.Serialization.XmlSerializer(typeof(Book)); var wfile new System.IO.StreamWriter(c:\temp\SerializationOverview.xml); writer.Serialize(wfile, b); wfile.Close(); // Now we can read the serialized book ... System.Xml.Serialization.XmlSerializer reader new System.Xml.Serialization.XmlSerializer(typeof(Book)); System.IO.StreamReader file new System.IO.StreamReader( c:\temp\SerializationOverview.xml); Book overview (Book)reader.Deserialize(file); file.Close(); Console.WriteLine(overview.title); } 传统方法生成xml超链接C#在WINForm程序中创建XML文件
http://www.zqtcl.cn/news/221892/

相关文章:

  • 新浪云虚拟主机做电影网站用什么l软件做网站了
  • 方城网站建设猴痘的治疗方法
  • 做响应式网站有什么插件哔哩哔哩免费安装
  • 织梦网站默认密码wordpress菜单页和文章页路径不同
  • 那些网站可以做兼职网站建设与维护 东博
  • 快速建站的模板建设银行嘉兴分行官方网站
  • 江西智能网站建设wordpress三栏博客主题
  • 怎么做网站账号注册机sem竞价
  • 吕梁建设机械网站怎么让网站排名上去
  • 网站建设的需要分析龙岗招聘网
  • 如何制作企业的网站网站开发答辩ppt
  • 大连中山网站建设网站在线qq代码
  • 南昌seo网站微商城网站建设如何
  • anker 网站建设手机可以做网站的服务器吗
  • 门户网站建设 报价没有网页快照对网站有什么影响
  • 陕西专业网站建设哪家好甜点网站里的新闻资讯怎么做
  • 邯郸企业网站团队h5微场景制作软件
  • 镇江建工建设集团网站泛微e8做网站门户
  • 适合友情链接的网站全球软件公司排行榜
  • 沈阳网站制作 600元网站飘动广告代码
  • 最先进的无锡网站建设wordpress调用 别的网站
  • 河南网站备案地址静安青岛网站建设
  • 烟台网站建设推荐企汇互联见效付款查看网站被百度收录
  • 做标签网站360街景地图怎么看
  • 深圳网站建设领先天津建设企业网站
  • 网站建设犭金手指C排名15温州 建网站的公司
  • 邢台建设银行官方网站公众号开发者密码是什么意思
  • 网站录入信息 前台查询功能怎么做营销网站主题有哪些内容
  • 网站SEO的评价触屏音乐网站源码
  • 网站开发u盘128够吗网站建设是固定资产嘛