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

西宁做网站的公司网络策划就业前景

西宁做网站的公司,网络策划就业前景,wordpress中collapse,深圳效果图制作这篇随笔对应的.Net命名空间是System.Xml.Serialization#xff1b;文中的示例代码需要引用这个命名空间。 为什么要做序列化和反序列化#xff1f;.Net程序执行时#xff0c;对象都驻留在内存中#xff1b;内存中的对象如果需要传递给其他系统使用#xff1b;或者在关机时… 这篇随笔对应的.Net命名空间是System.Xml.Serialization文中的示例代码需要引用这个命名空间。 为什么要做序列化和反序列化 .Net程序执行时对象都驻留在内存中内存中的对象如果需要传递给其他系统使用或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化。 范围本文只介绍xml序列化其实序列化可以是二进制的序列化也可以是其他格式的序列化。 看一段最简单的Xml序列化代码 1 2 3 4 5 6 7 8 9 10 11 12 class Program {     static void Main(string[] args)     {         int i 10;         //声明Xml序列化对象实例serializer         XmlSerializer serializer new XmlSerializer(typeof(int));         //执行序列化并将序列化结果输出到控制台         serializer.Serialize(Console.Out, i);         Console.Read();     } } 上面代码对int i进行了序列化并将序列化的结果输出到了控制台输出结果如下 ?xml version1.0 encodinggb2312? int10/int 可以将上述序列化的xml进行反序列化如下代码 static void Main(string[] args) {using (StringReader rdr new StringReader(?xml version1.0 encodinggb2312? int10/int)){//声明序列化对象实例serializer XmlSerializer serializer new XmlSerializer(typeof(int));//反序列化并将反序列化结果值赋给变量iint i (int)serializer.Deserialize(rdr);//输出反序列化结果Console.WriteLine(i i);Console.Read();} } 以上代码用最简单的方式说明了xml序列化和反序列化的过程.Net系统类库为我们做了大量的工作序列化和反序列化都非常简单。但是在现实中业务需求往往比较复杂不可能只简单的序列化一个int变量显示中我们需要对复杂类型进行可控制的序列化。 自定义对象的Xml序列化 System.Xml.Serialization命名空间中有一系列的特性类用来控制复杂类型序列化的控制。例如XmlElementAttribute、XmlAttributeAttribute、XmlArrayAttribute、XmlArrayItemAttribute、XmlRootAttribute等等。 看一个小例子有一个自定义类CatCat类有三个属性分别为ColorSayingSpeed。 namespace UseXmlSerialization {class Program{static void Main(string[] args){//声明一个猫咪对象var c new Cat { Color White, Speed 10, Saying White or black, so long as the cat can catch mice, it is a good cat };//序列化这个对象XmlSerializer serializer new XmlSerializer(typeof(Cat));//将对象序列化输出到控制台serializer.Serialize(Console.Out, c);Console.Read();}}[XmlRoot(cat)]public class Cat{//定义Color属性的序列化为cat节点的属性[XmlAttribute(color)]public string Color { get; set; }//要求不序列化Speed属性[XmlIgnore]public int Speed { get; set; }//设置Saying属性序列化为Xml子元素[XmlElement(saying)]public string Saying { get; set; }} } 可以使用XmlElement指定属性序列化为子节点默认情况会序列化为子节点或者使用XmlAttribute特性制定属性序列化为Xml节点的属性还可以通过XmlIgnore特性修饰要求序列化程序不序列化修饰属性。   对象数组的Xml序列化 数组的Xml序列化需要使用XmlArrayAttribute和XmlArrayItemAttributeXmlArrayAttribute指定数组元素的Xml节点名XmlArrayItemAttribute指定数组元素的Xml节点名。 如下代码示例 /*玉开技术博客 http://www.cnblogs.com/yukaizhao */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization;namespace UseXmlSerialization {class Program{static void Main(string[] args){//声明一个猫咪对象var cWhite new Cat { Color White, Speed 10, Saying White or black, so long as the cat can catch mice, it is a good cat };var cBlack new Cat { Color Black, Speed 10, Saying White or black, so long as the cat can catch mice, it is a good cat };CatCollection cc new CatCollection { Cats new Cat[] { cWhite,cBlack} };//序列化这个对象XmlSerializer serializer new XmlSerializer(typeof(CatCollection));//将对象序列化输出到控制台serializer.Serialize(Console.Out, cc);Console.Read();}}[XmlRoot(cats)]public class CatCollection{[XmlArray(items),XmlArrayItem(item)]public Cat[] Cats { get; set; }}[XmlRoot(cat)]public class Cat{//定义Color属性的序列化为cat节点的属性[XmlAttribute(color)]public string Color { get; set; }//要求不序列化Speed属性[XmlIgnore]public int Speed { get; set; }//设置Saying属性序列化为Xml子元素[XmlElement(saying)]public string Saying { get; set; }} } 以上代码将输出 ?xml version1.0 encodinggb2312? cats xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:xsdhttp://ww w.w3.org/2001/XMLSchemaitemsitem colorWhitesayingWhite or black, so long as the cat can catch mice, it is a good cat/saying/itemitem colorBlacksayingWhite or black, so long as the cat can catch mice, it is a good cat/saying/item/items /catsXmlSerializer内存泄漏问题 多谢chenlulouis仔细看了下msdn确实存在泄漏的情况msdn说明如下 动态生成的程序集 为了提高性能XML 序列化基础结构将动态生成程序集以序列化和反序列化指定类型。此基础结构将查找并重复使用这些程序集。此行为仅在使用以下构造函数时发生 XmlSerializer(Type) XmlSerializer.XmlSerializer(Type, String) 如果使用任何其他构造函数则会生成同一程序集的多个版本且绝不会被卸载这将导致内存泄漏和性能降低。最简单的解决方案是使用先前提到的两个构造函数的其中一个。否则必须在 Hashtable 中缓存程序集如以下示例中所示。 也就是说我们在使用XmlSerializer序列化初始化XmlSerializer对象时最好使用下面两个构造函数否则会引起内存泄漏。XmlSerializer(Type)XmlSerializer.XmlSerializer(Type, String) C#处理Xml的相关随笔 转载于:https://www.cnblogs.com/goody9807/p/3934892.html
http://www.zqtcl.cn/news/893002/

相关文章:

  • 长寿网站建设公司服装设计有哪些网站
  • 苍溪规划和建设局网站网页设计制作报告
  • html5网站 源码360浏览器个别网页打不开怎么解决
  • 找个小网站建设网站优点
  • 台州网站建设优化网站建设加微信
  • 公司网站建设费会计分录义乌商城集团的网站建设
  • 彩票网站建设基本流程网站文章页做百度小程序
  • 在淘宝上做代销哪个网站好推广普通话喜迎二十大的手抄报怎么画
  • 知名网站建设开发受欢迎的唐山网站建设
  • 普洱网站搭建创建论坛网站需要多少钱
  • 自己做的网站如何在网络上展示wordpress 手动采集
  • 上海做网站要多少钱wordpress教程app
  • 房地产设计网站沈阳人流哪个医院好安全
  • 贵阳专业做网站微信小程序商城源代码
  • seo建站收费地震郑州做网站开发销售
  • 东莞整站优化推广公司找火速建设企业网站要多少钱
  • 网站备案 两个域名东莞保安公司联系电话
  • 网站专业制作公司律师如何在网上推广
  • 免费培训seo网站一直免费的服务器下载安装
  • 广州h5网站制作公司做竞价网站 要注意什么
  • 太原网站搭建推广id怎么编辑wordpress
  • 网站开发网站设计制作广告设计与制作基础知识
  • 企业建设H5响应式网站的5大好处网站备案后经营
  • 网站数据流分析怎么做河北搜索引擎推广方法
  • 哈尔滨网站建设咨询辽宁建设工程信息网怎么看项目经理是不是被锁住
  • 成立做网站的公司搭建网站有费用吗
  • 标志设计说明案例北京网站优化seo
  • 国外app设计网站佛山网站推广市场
  • 北京矿建建设集团有限公司 网站科技软件下载
  • 公司建网站要多少钱wordpress轮播框