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

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

 注意咯: Paste XML As Classes 只有.NET Framework 4.5 才有。

  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;
}

引用
为什么我只有json-class 没xml-class


Paste XML As Classes 只有.NET Framework 4.5 才有。
时间: 2024-10-24 12:15:47

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

Visual Studio 2013引入联网IDE体验 自动同步设备

近日,Visual Studio 2013以 Visual Studio 2012 和后续的 Visual Studio 更新中的进展为基础构建而成,为开发团队提供需要的解决方案,使其接纳这种转变并开发和交付利用下一波 Windows 平台创新 (Windows 8.1) 的新式应用程序,同时在所有 Microsoft 平台上支持多种设备和服务.设备和服务体验有了根本性的变革,改变了行业对软件开发的处理方式.消费者.客户和员工现在需要一种全新的应用程序.他们要求应用程序在多种屏幕和设备上提供最佳

InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)

原文:InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序) InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET Framework进去) 本文转自"吾乐吧软件站",原文链接:http://www.wuleba.com/?p=23892 从Visual Studio 2012开始,微软就把自家原来的安装与部署工具彻

Visual Studio 2013的新功能

微软在其官方博客撰文描述了在VS 2013中提升开发人员生产力的一些新功能.文章称:"在VS 2013中,我们引入了新的功能,节省了在编辑器内工作的时间.还提高了生产力.这些新功能和一些最流行的生产力工具集,来自于用户们通过User Voice请求.论坛帖子.以及Connect bugs的热心反馈.MVP社区还帮助我们做出了筛选". 编码的时候,你可以轻松地在Editor编辑器中使用Peek Definition查看定义内联(definitions inline),而无需打开一个新的文

使用Visual Studio 2013进行单元测试--初级篇

原文:使用Visual Studio 2013进行单元测试--初级篇 1.打开VS2013 --> 新建一个项目.这里我们默认创建一个控制台项目.取名为UnitTestDemo 2.在解决方案里面新增一个单元测试项目.取名为UnitTestDemoTest 创建完毕后项目结构大概如下:   3.进入控制台项目UnitTestDemo的Program类,创建一个Add方法. namespace UnitTestDemo { class Program { static void Main(stri

visual studio 2013建不了源文件

问题描述 visual studio 2013建不了源文件 解决方案 看工程生成的时候是否产生对应的文件.是不是编译器的安装不正确 解决方案二: 贴一个图天知道.你创建的是什么项目,怎么个创建失败,你是怎么操作的.磁盘上有没有产生文件,等等. 不过建议你重装系统,一了百了.另外确认你能使用英文版并且看懂提示. 解决方案三: 因为干净的系统+新装的软件肯定可以100%正常工作.否则就看你的造化了.

ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版

原文:ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版 ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio Community 2013 开发环境. Visual Studio Community 2013 提供完整功能的 IDE ,可开发 Windows.Android 和 iOS 应用.支持:C++, Python, HTML5, JavaScript, 和 C#,VB, F# 语言的开发,提供设计器

编码-如何使用visual studio 2013保存php文件默认就是utf-8无签名的?

问题描述 如何使用visual studio 2013保存php文件默认就是utf-8无签名的? 使用visual studio 2013开发php时,经常文件的编码会变成utf-8带签名的,这样运行时页面样式会出问题,百度后发现这是微软格式文件的问题,请教大家,能否修改配置,使得每次默认修改就是utf-8无签名编码,具体如下图:谢谢大家: 解决方案 在工具-选项-文本编辑器-自动检测没有签名的utf-8文件(我不用中文版的vs,可能文字有出入),你找下. 解决方案二: Using UTF-8

微软正式发布Visual Studio 2013 Update 3 (2013.3) RTM

昨天微软的Visual Studio 2013 Update 3(Visual Studio 2013.3)正式发布(RTM)了,做为微软认证金牌合作的葡萄城控件,我们组织力量第一时间进行翻译.分享给大家: 下载 Visual Studio 2013 Update 3 此更新程序是最新的一个累加了新功能和错误修复的Visual Studio2013,您可以从以下链接获得Visual Studio2013和Team Foundation Server 2013: Download Visual S

怎么在 Visual Studio 2013 上使用 Github

介绍 我承认越是能将事情变简单的工具我越会更多地使用它.尽管我已经知道了足够的命令来使用Github,但我宁愿它被集成到IDE中.在本教程中,我会告诉你使用Visual Studio 2013如何实现. 首先创建一个任意类型的项目.在我的例子中,我创建了一个新的Windows Phone 8应用.重述一遍,这无关紧要.按如下显示选择"文件">"添加到源码控制". 你会看到一个在TFS和Git间选择的选项.选择"Git"并勾选"以后