让Visual Studio 2013为你自动生成XML反序列化的类

Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性。如:

  1. 在代码编辑界面的右侧滚动条上显示不同颜色的标签,让开发人员可以对所编辑文档的修改、查找、定位情况一目了然。而不用像往常一样上下不停地拖动滚动条来定位到某一行,如果代码量很大,上下拖动滚动条着实让人很头疼。

  2. 括号、代码换行自动完成。在代码编写的过程中,输入左括号Visual Studio会自动帮你完成右括号,如果你不小心主动输入了右括号,也没有关系,Visual Studio会自动进行整理。代码编辑的智能程度比之前的版本有所提高。

  3. 每一个类或方法前面会自动添加references的数量,点击之后可以直接查找工程中哪些地方有引用,非常直观。

  4. 还有许多优化。

  Visual Studio 2013用得不太多,所以许多新增的功能只能以后慢慢再发掘。这里介绍一个很有用的功能,自动生成XML反序列化的类。以往想要在代码中将XML反序列化成对象,我们要么手动创建这些对象(很容易出错),要么借助于第三方的工具来生成Class。而现在,Visual Studio 2013可以自动帮我们完成这个工作。当然,如果你对XML反序列化并不感兴趣,而热衷于使用XElement或者XMLDocument来加载和解析XML,那么你可以忽略本文的内容。

  来看看在Visual Sutdio 2013中如何使用这个功能!

  1. 创建一个工程,或者打开现有的工程。必须要有一个工程啊!不然所生成的Classes如何编译和运行呢?

  2. 新建一个XML文件,输入你希望的内容。如:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<Cars><Car><StockNumber>1020</StockNumber><Make>Nissan</Make><Model>Sentra</Model></Car><Car><StockNumber>1010</StockNumber><Make>Toyota</Make><Model>Corolla</Model></Car><Car><StockNumber>1111</StockNumber><Make>Honda</Make><Model>Accord</Model></Car>
</Cars>
复制代码

  3. 全选整个XML文件的内容,Ctrl+C复制。

  4. 创建一个.cs文件或打开工程中现有的.cs文件,将光标定位到你要创建一个Class的地方。

  4. 选择Edit->Paste Special->Paste XML As Classes,OK!你会看到Visual Studio已经为你生成好了反序列化的Classes。

  很方便吧!你可以对生成的Classes做任何修改,包括修改属性和对象的名称以及类型,修改代码逻辑和包含关系等。但有一点需要注意!反序列化的类必须要能匹配所对应的XML文档的结构,否则在代码中进行反序列化操作时会失败。下面这个方法通过反序列化上面给出的XML,找出对应makeName的CarsCar对象。

复制代码
public static CarsCar GetCar(string makeName)
{string xmlFilePath = "c:\\XMLFile1.xml";Cars cars = null;XmlSerializer serializer = new XmlSerializer(typeof(Cars));using (FileStream fs = new FileStream(xmlFilePath, FileMode.Open)){using (XmlReader reader = XmlReader.Create(fs)){cars = (Cars)serializer.Deserialize(reader);}}if (cars != null){CarsCar car = cars.Car.Where(n => n.Make == makeName).FirstOrDefault();if (car != null){return car;}}return null;
}
复制代码

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

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

相关文章

20年的 .NET ,更需要 00 后的你

.NET 20 周年&#xff0c; 在国内有一大批和 .NET 一起成长的开发者&#xff0c;有一大批在不同行业采用 .NET 作为解决方案的企业。或者你会经常听到很多的大神说他的 .NET 经历&#xff0c;也会听到 .NET “牛逼” 的故事&#xff0c;更会听到用 .NET 不用“996”的神话。但对…

UIT创新科存储系统服务“500强”汽车名企

信息化已成为汽车产业链各企业提高市场竞争力和传统汽车产业谋求转型升级的推动力&#xff0c;无论是汽车生产商&#xff0c;还是汽车服务商和零配件生产商&#xff0c;无不重视信息化系统的建设。某全球汽车行业著名的零配件生产商&#xff0c;财富500强企业之一&#xff0c;从…

通过从备份中排除这些文件夹来节省Time Machine驱动器上的空间

Are you getting notifications about a full Time Machine drive? Do you feel like your backups are taking too long? A bigger, faster hard drive might be the best solution, but you can also help by excluding particular folders from your backups. 您是否收到有…

c#调用触滑输入法实现触摸屏键盘功能

背景最近在做一个项目&#xff0c;用户端是触摸屏&#xff0c;涉及到一些表单数据的操作&#xff0c;因为是没有外接的鼠标键盘&#xff0c;所以想着当用户在操作表单的时候&#xff0c;能够把软件键盘输入法给调出来使用。什么是触滑输入法触滑输入法Swype&#xff0c;是针对触…

Teradata天睿公司推出适用各种部署环境的全球最强分析数据库

Teradata天睿公司&#xff08;Teradata Corporation&#xff0c;纽交所&#xff1a;TDC&#xff09;推出Teradata Everywhere™&#xff0c;成为业内首家在多种公有云、托管云和本地部署环境下部署全球最强海量并行处理&#xff08;MPP&#xff09;分析数据库的厂商。这些部署环…

[转载]C/C++框架和库

C/C框架和库 装载自:http://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419值得学习的C语言开源项目 Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL&#xff0c;测试网站在压力下工作的性能&#…

如何使用智能铃声避免在Android中令人尴尬的大声铃声

Choosing a ringtone volume can be hard – there is no one setting that is right for all environments. What works perfectly at home may be too quiet for when you’re on the train, but too loud for the office. Intelligent Ringer can be used to adjust ringto…

为什么要把类设置成密封?

前几天笔者提交了关于FasterKvCache的性能优化代码&#xff0c;其中有一个点就是我把一些后续不需要继承的类设置为了sealed密封类&#xff0c;然后就有小伙伴在问&#xff0c;为啥这个地方需要设置成sealed&#xff1f;提交的代码如下所示&#xff1a;一般业务开发的同学可能接…

powershell 常用命令笔记

常用集合&#xff0c;方便后续复制粘贴 # 判断文件在不在 # 输出文件 IF(!(test-path $filePath)) {$result|Out-File $filePath }# 读取txt $result(Get-Content $filePath -TotalCount 1).Trim() $result# 删除文件 remove-item "C:\wistron\Datasource\spiderPort.txt…

Linux 性能监控 : CPU 、Memory 、 IO 、Network

一、CPU 1.良好状态指标 CPU利用率&#xff1a;User Time < 70%&#xff0c;System Time < 35%&#xff0c;User Time System Time < 70% 上下文切换&#xff1a;与CPU利用率相关联&#xff0c;如果CPU利用率状态良好&#xff0c;大量的上下文切换也是可以接受的 可…

Java 打飞机(小游戏)[版权非本人 本人制作收藏整理]

今天在网络上 看到一个纯java的小游戏 代码copy到 myeclipse中 居然效果还不错 这是一些效果图 当然了 图片是我自己找的 有心兴趣的朋友可以做的好看一点 具体的代码 都放在自己的文件里去了 那么可以去下载 https://i.cnblogs.com/Files.aspx 转载于:https://www.cnblogs…

Cygwin使用指南

1 引言cygwin是一个在windows平台上运行的unix模拟环境&#xff0c;是cygnus solutions公司开发的自由软件&#xff08;该公司开发了很多好东西&#xff0c;著名的还有eCos&#xff0c;不过现已被Redhat收购&#xff09;。它对于学习unix/linux操作环境&#xff0c;或者从unix到…

nest 架构_当有人打来您的Nest Hello时,如何让Google Home通知您

nest 架构The Nest Hello can alert you on your phone whenever someone rings your doorbell, but if you have a Google Home, you can also have Google Assistant audibly announce that someone is at the door. 无论何时有人按下门铃&#xff0c; Nest Hello都会在电话上…

如何序列化派生类

前言假设有一个 Person 抽象基类&#xff0c;其中包含 Student 和 Teacher 派生类&#xff1a;public class Person {public string Name { get; set; } }public class Student : Person {public int Score { get; set; } }public class Teacher : Person {public string Title…

OPC Client “failed to execute OPCENUM” 解决方法

进入cmd重新执行 OpcEnum.exe /regserver 即可。

django07: 模板语言(旧笔记)

详见&#xff1a;https://www.cnblogs.com/liwenzhou/p/7931828.html#autoid-2-3-6 包含&#xff1a; 模板 块 组件 静态文件

block,inline和inline-block概念和区别

block&#xff1a;block-level elements (块级元素) &#xff0c;inline&#xff1a; inline elements (内联元素)。block元素通常被现实为独立的一块&#xff0c;会单独换一行&#xff1b;inline元素则前后不会产生换行&#xff0c;一系列inline元素都在一行内显示&#xff0c…

Hadoop3.0 WordCount测试一直Accept 状态,Nodes of the cluster 页面node列表个数为0

起因是我运行wordcount测试一直卡主&#xff0c;不能执行&#xff0c;一直处于 Accept 状态&#xff0c;等待被执行&#xff0c;刚开始是各种配置yarn参数&#xff0c;以及host配置&#xff0c;后来发现还是不行 hadoop 集群安装完成后&#xff0c;在50070的 HDFS 管理后台能看…

nexus 手动增加_如何使用Google的工厂图像手动升级Nexus设备

nexus 手动增加Google’s Nexus devices are supposed to receive timely updates, but the staggered rollout means it can take weeks for devices to receive over-the-air (OTA) updates. Luckily, there’s a faster (and geekier) way to install the latest version of…

教你创建Google网站地图Sitemap.xml(转)

http://teachmyself.blog.163.com/blog/static/18881422920119895248288/ Sitemap.xml是 google搞出来的&#xff0c;也就是网站地图&#xff0c;不过这个网站地图是用xml写的&#xff0c;而且要按google的标准来写&#xff0c;并且要将写出来的这个文件 sitemap.xml上传到自己…