微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

convert-xml-to-csharp-classes/

refs:

https://dennymichael.net/2014/05/30/convert-xml-to-csharp-classes/comment-page-1/


Today I foundacool Visual Studio 2012/2013functionality: you can paste an XML source as Classes,in fact creating all the object model to serialize anddeserialize object with the xml format,all this without usingxsd.exe tool.

Here’s the very simple steps:

1 – The most difficult step….. copy the xml source in the clipboard,something like CTRL+A and CTRL+C

Is ridiculous to add a screenshot,but I’ve got it,so why not!

2 – Create a new empy class file… no more screenshot please! ok here we go

3 – Go to Edit -> Paste Special -> Paste XML As Classes,to paste the generated classes based on the source xml

Here’s the code I’ve used to test thedeserialization:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;
using ConsoleDump;
using ConvertXmlToCSharpClasses.Properties;
namespace ConvertXmlToCSharpClasses
{
internal class Program
{
private static void Main( string [] args)
{
TestSample1();
TestSample2();
Console.WriteLine( "Press enter to exit the application..." );
Console.ReadLine();
}
private static void TestSample1()
{
var serializer = new XmlSerializer( typeof (library));
var buffer = Encoding.UTF8.GetBytes(Resources.Sample1);
using ( var stream = new MemoryStream(buffer))
{
var library = (library)serializer.Deserialize(stream);
library.book.Dump( "Book" );
library.book.title.Dump( "Book Title" );
library.book.author.Dump( "Book Title" );
}
}
private static void TestSample2()
{
var serializer = new XmlSerializer( typeof (catalog));
var buffer = Encoding.UTF8.GetBytes(Resources.Sample2);
using ( var stream = new MemoryStream(buffer))
{
var catalog = (catalog)serializer.Deserialize(stream);
catalog.product.Dump( "Product" ).catalog_item.Dump( "Product Items" )[0].size.Dump( "Item Size" )[0].color_swatch.Dump( "Color Swatch" );
}
}
}
}

You can also download the test project.

4 – Enjoy your savedtime

原文地址:https://www.jb51.cc/xml/293995.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。