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

产品图册用什么软件做seo技术

产品图册用什么软件做,seo技术,wordpress推广机制,湘潭建设厅官方网站在我们深入探时C#序列化和反序列化#xff0c;之前我们先要明白什么是序列化#xff0c;它又称串行化#xff0c;是.ET运行时环境用来支持用户定义 类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去#xff0c;反序列化就是在适当的时候把这个文件再… 在我们深入探时C#序列化和反序列化之前我们先要明白什么是序列化它又称串行化是.ET运行时环境用来支持用户定义 类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去反序列化就是在适当的时候把这个文件再转化 成原来的对象使用。其目的是以某种存储形成使自定义对象持久化或者将这种对像从一个地方传输到另一个地方。.ET框 架提供了两种串行化的方式 1、是使用Binary Formatteri进行串行化 2、使用Soap Formatteri进行串行化 3、使用XmlSerializeri进行串行化。 第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息而第二种将数据流格式化为XL存储第三种其实和 第二种差不多也是XL的格式存储只不过比第二种的XML格式要简化很多去掉了SOAP特有的额外信息。可以使用 [Serializable]属性将类标志为可序列化的。如果某个类的元素不想被序列化1、2可以使用NonSerialized属性来标志2、 可以使用[Xmllg nore]来标志。 下面就让上我们开始深入了解C序列化和反序列化 C#序列化和反序列化1、使用BinaryFormatteri进行串行化 下面是一个可串行化的类 代码如下 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.Ul; using System.Web.Ul.WebControls; using System.Web.Ul.WebControls.WebParts; using System.Web.Ul.HtmlControls; using System.IO; using System.Runtime.Serialization.Formatters.Binary; /*summary /ClassToSerialize的摘要说明 ///summary [Serializable] public class ClassToSerialize public int id 100; public string name Name; [NonSerialized public string Sex“男 下面是串行化和反串行化的方法 代码如下 public void SerializeNow() ClassToSerialize cnew ClassToSerialize(); FileStream fileStream new FileStream(c:\\temp.dat,FileMode.Create); BinaryFormatter b new BinaryFormatter(); b.Serialize(fileStream,c); fileStream.Close(); public void DeSerializeNow() ClassToSerialize cnew ClassToSerialize(); c.SeX“kkkk; FileStream fileStream new FileStream(c:\temp.dat, FileMode.Open,FileAccess.Read,FileShare.Read); BinaryFormatter b new BinaryFormatter(); c b.Deserialize(fileStream)as ClassToSerialize; Response.Write(c.name); Response.Write(c.Sex); fileStream.Close();调用上述两个方法可以看到串行化的结果Sex属性因为被标志为NonSerialized,故其值总是为null, C#序列化和反序列化2、使用SoapFormatteri进行串行化和BinaryFomatter类似我们只需要做一下简单修改即可 a.将usingi语句中的.Formatter.Binaryi改为.Formatter.Soap; b.将所有的BinaryFormatteri替换为Soap Formatter. c.确保报存文件的扩展名为.xml 经过上面简单改动即可实现SoapFormatter的串行化这时候产生的文件就是一个ml格式的文件。 C#序列化和反序列化3、使用KmlSerializeri进行串行化 关于格式化器还有一个问题假设我们需要XL,但是不想要SO八P特有的额的外信息那么我们应该怎么办呢有两中方案 要么编写一个实现IFormatter接口的类采用的方式类似于SoapFommatter类但是没有你不需要的信息要么使用库类 XmlSerializer,这个类不使用Serializable属性但是它提供了类似的功能。 如果我们不想使用主流的串行化机制而想使用XmlSeralizer进行串行化我们需要做一下修改 a.添加System.Xml.Serialization命名空间。 b.Serializable和NoSerialized,属性将被忽略而是使用Kmllgnore属性它的行为与NoSerialized类似。 c.XmlSeralizer要求类有个默认的构造器这个条件可能已经满足了。 下面看C#序列化和反序列化示例 要序列化的类 代码如下 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.Ul; using System.Web.Ul.WebControls; using System.Web.Ul.WebControls.WebParts; using System.Web.Ul.HtmlControls; using System.Xml.Serialization; 代码如下 [Serializable] public class Person private string name; public string Name get { SPAN styleWHITE-SPACE:pre/SPANreturn name; SPAN styleWHITE-SPACE:pre/SPAN) SPAN styleWHITE-SPACE:pre/SPANset SPAN styleWHITE-SPACE:pre/SPAN{ SPAN styleWHITE-SPACE:pre/SPAN name value; SPAN styleWHITE-SPACE:pre/SPAN) public string Sex; public int Age 31; public Course[]Courses; public Person() public Person(string Name) SPAN styleWHITE-SPACE:pre/SPANname Name; SPAN styleVHITE-SPACE:pre/SPANSex“男” }代码如下: [Serializable] public class Course { public string Name; [Xmllgnore] public string Description; public Course() public Course(string name,string description) SPAN styleWHITE-SPACE:pre/SPANName name; SPAN styleWHITE-SPACE:pre/SPANDescription description; }C#序列化和反序列化方法 代码如下: public void XMLSerialize() Person c new Person(cyj); c.Courses new Course[2]; c.Courses[0]new Course(英语”“交流江具) c.Courses[1]new Course(数学”自然科学) XmlSerializer xs new XmlSerializer(typeof(Person)); Stream stream new FileStream(c:\cyj.XML,FileMode.Create,FileAccess.Write,FileShare.Read); xs.Serialize(stream,c); stream.Close(); public void XMLDeserialize() XmlSerializer xs new XmlSerializer(typeof(Person)); Stream stream new FileStream(C:\\cyj.XML,FileMode.Open,FileAccess.Read,FileShare.Read); Person p xs.Deserialize(stream)as Person; Response.Write(p.Name); Response.Write(p.Age.ToString()); Response.Write(p.Courses[0].Name); Response.Write(p.Courses[0].Description); Response.Write(p.Courses[1].Name); Response.Write(p.Courses[1].Description); stream.Close();这里Course类的Description属性值将始终为null生成的xml文档中也没有该节点如下 代码如下: xml version1.0 Person xmlns:xsi http://www.w3.org/2001/XMLSchema-instance xmlns:xsdhttp://www.w3.org/2001/XMLSchema Sex男/Sex Age31 /Age Courses ×Course Name英语Name Description交流工具Description ×/Course Course Name数学Name Description自然科学Description /Course /Courses ×Namecyj /Name /PersonC#序列化和反序列化4、自定义序列化 如果你希望让用户对类进行串行化但是对数据流的组织方式不完全满意那么可以通过在自定义类中实现接口来自定义串行化行为。这个接口只有一个方法GetObjectData.这个方法用于将对类对象进行串行化所需要的数据填进SerializationInfo)对象。你使用的格式化器将构造SerializationInfo对象然后在串行化时调用GetObjectData.如果类的父类也实现了ISerializable,那么应该调用GetObjectDatal的父类实现。如果你实现了ISerializable,那么还必须提供一个具有特定原型的构造器这个构造器的参数列表必须与GetObjectData相同。这个构造器应该被声明为私有的或受保护的以防止粗心的开发人员直接使用它。示例如下 C#序列化和反序列化之实现ISerializable的类 代码如下 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.Ul; using System.Web.Ul.WebControls; using System.Web.Ul.WebControls.WebParts; using System.Web.Ul.HtmlControls; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; *lWW×summary /Employee的摘要说明 1///summary [Serializable] public class Employee:ISerializable public int Empld100; public string EmpName-刘德华 [NonSerialized] public string NoSerialString NoSerialString-Test; public Employee() SPAN style-WHITE-SPACE:pre”/SPAN∥TODO:在比处添加构造函数逻辑 SPAN style--WHITE-SPACE:pre”/SPAN∥ } private Employee(Serializationlnfo info,StreamingContext ctxt) SPAN styleWHITE-SPACE:pre/SPANEmpld (int)info.GetValue(Employeeld,typeof(int)); SPAN styleWHITE-SPACE:pre/SPANEmpName (String)info.GetValue(EmployeeName,typeof(string)); SPAN styleWHITE-SPACE:pre/SPAN//NoSerialString (String)info.GetValue(EmployeeString,typeof(string)); public void GetObjectData(Serializationlnfo info,Streaming Context ctxt) SPAN styleWHITE-SPACE:pre/SPANinfo.AddValue(Employeeld,Empld); SPAN styleWHITE-SPACE:pre/SPANinfo.AddValue(EmployeeName,EmpName); SPAN styleWHITE-SPACE:pre/SPAN//info.AddValue(EmployeeString,NoSerialString); }C#序列化和反序列化方法 代码如下: public void OtherEmployeeClassTest() Employee mp new Employee(); mp.Empld 10; mp.EmpName“邱t枫” mp.NoSerialString“你好呀 Stream steam File.Open(c:\temp3.dat,File Mode.Create); BinaryFormatter bf new BinaryFormatter(); Response.Write(Writing Employee Info:) bf.Serialize(steam,mp); steam.Close(); mp null; C#序列化和反序列化之反序列化 Stream steam2 File.Open(c:\temp3.dat,FileMode.Open); BinaryFormatter bf2 new BinaryFormatter(); Response.Write(Reading Employee Info:) Employee mp2 (Employee)bf2.Deserialize(steam2); steam2.Close(); Response.Write(mp2.Empld); Response.Write(mp2.EmpName); Response.Write(mp2.NoSerialString);这里介绍了几种方式之间的序列化与反序列化之间的转换 首先介绍的如何序列化将object对象序列化常见的两种方式即string和xml对象; 第一种将object转换为string对象这种比较简单没有什么可谈的
http://www.hkea.cn/news/14382645/

相关文章:

  • 苏州网站建设开发公司用花瓣网站上的图片做游戏行吗
  • 上海网站建设集中交友征婚婚恋网站系统php+mysql.rar
  • 如何做校园网站推广计划a设置了短语否定匹配关键词为招聘
  • 临海城市建设网站暴富建站
  • 建设wap手机网站制作外贸网店平台
  • 专注网站建设微信开发廊坊网页关键词优化
  • 做网站专业行业网站开发程序
  • 太原营销型网站建设制作网站大多用源码来做吗
  • 江门住房城乡建设厅网站德州营销型网站
  • 哪些网站可以做设计赚钱佛山新网站建设怎么样
  • 咸宁网站设计公司谷歌广告代理商
  • 深圳前海网站设计网页升级紧急通知拿笔记好
  • 建设手机版网站需要主机多少空间做网站手机验证收费吗
  • 济南网站建设销售招聘如何撤销网站上信息吗
  • 个人网站做支付宝收款网站建设与管理 吴振峰
  • 网站抓取qq号码原理厦门网站设计哪家公司好
  • 保定网站开发公司常州手机网站开发
  • 怎么分享网站建设一个网站多少钱呢
  • 陕西 汽车 网站建设二级学院网站制度建设
  • 深圳网站制作公司 讯500强网站建设
  • 徐州网站建设价格网络系统软件应用与维护
  • 网络推广方法技巧优化关键词的方法包括
  • 无版权视频素材网站网站建设有那些
  • 天水模板型网站建设电子商务静态网站建设心得
  • 烟台做网站的价格免费咨询聊天
  • 织梦网站根目录标签网站建设 设计方案 百度文库
  • 网站显示结算必应收录提交入口
  • 国字型网站建设布局成都筑巢网站建设
  • 有做的小说网站深圳网站建设开发哪家好
  • 贵阳快速建站模板有哪些网站可以做任务