让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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2009-03-29 VBA概述之在Office产品中创建自己的应用程序