如何从 XML 文件创建可序列化的 C# 类
我对 .net 中的 XML 相当陌生。作为我的任务的一部分,我需要创建可以序列化为 XML 的类。我有一个包含所有标签的示例 XML 文件(该类应该生成与示例 XML 文件类似的 XML)。从 XML 文件创建类的最佳方法是什么?
先感谢您!!
I am fairly new to XML in .net. As part of my task i need to create the class which can be serialized to XML. I have an sample XML file with all the tags(the class should produce XML similar to the sample XML file ). what would be best approach to create the class from XML file?
Thank you in advance!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 XSD.exe 从 .xml 创建 .cs 文件。
http://msdn.microsoft.com/en-us/library/x6c1kb0s% 28VS.71%29.aspx
在命令行:
第一行将生成一个架构定义文件(xsd),第二个文件应生成一个.cs文件。我不确定语法是否准确,但它应该可以帮助您入门。
You can use XSD.exe to create a .cs file from .xml.
http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.71%29.aspx
At the command line:
The first line will generate a schema definition file (xsd), the second file should generate a .cs file. I'm not sure if the syntax is exact, but it should get you started.
逆向工作可能会有所帮助——首先创建类,然后序列化并看看会得到什么。
对于最简单的类来说,这实际上很容易。您可以使用 XmlSerializer 进行序列化,例如:
这会将 XML 中的类的序列化表示写入“c:\temp\class.xml”。你可以看一下,看看你会得到什么。相反,您可以使用serializer.Deserialize从“c:\temp\class.xml”实例化该类。
您可以修改序列化的行为,并处理意外的节点等 - 请查看 XmlSerializer MSDN 页面。
Working backwards might help -- create your class first, then serialize and see what you get.
For the simplest classes it's actually quite easy. You can use XmlSerializer to serialize, like:
This will write a serialized representation of your class in XML to "c:\temp\class.xml". You could take a look and see what you get. In reverse, you can use serializer.Deserialize to instantiate the class from "c:\temp\class.xml".
You can modify the behaviour of he serialization, and deal with unexpected nodes, etc -- take a look at the XmlSerializer MSDN page for example.
这是一个如何序列化/反序列化对象的好例子。 http://sharpertutorials.com/serialization/
here's a good example how to serialize/deserialize an object. http://sharpertutorials.com/serialization/