![](/img/trans.png)
[英]c#: How to create serializable c# class to reflect XML file with dynamic sub-element?
[英]How create a serializable C# class from XML file
我对.net中的XML相当新。 作为我的任务的一部分,我需要创建可以序列化为XML的类。 我有一个带有所有标签的示例XML文件(该类应该生成类似于示例XML文件的XML)。 从XML文件创建类的最佳方法是什么?
先感谢您!!
您可以使用XSD.exe从.xml创建.cs文件。 http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.71%29.aspx
在命令行:
xsd myFile.xml
xsd myFile.xsd
第一行将生成模式定义文件(xsd),第二行应生成.cs文件。 我不确定语法是否准确,但它应该让你开始。
向后工作可能会有所帮助 - 首先创建您的课程,然后序列化并查看您获得的内容。
对于最简单的类,它实际上非常简单。 您可以使用XmlSerializer进行序列化,例如:
namespace ConsoleApplication1 { public class MyClass { public string SomeProperty { get; set; } } class Program { static void Main(string[] args) { XmlSerializer serializer = new XmlSerializer(typeof(MyClass)); TextWriter writer = new StreamWriter(@"c:\temp\class.xml"); MyClass firstInstance = new MyClass(); firstInstance.SomeProperty = "foo"; // etc serializer.Serialize(writer, firstInstance); writer.Close(); FileStream reader = new FileStream(@"c:\temp\class.xml", FileMode.Open); MyClass secondInstance = (MyClass)serializer.Deserialize(reader); reader.Close(); } } }
这将把您的类的序列化表示形式写入“c:\\ temp \\ class.xml”。 你可以看一看,看看你得到了什么。 相反,您可以使用serializer.Deserialize从“c:\\ temp \\ class.xml”实例化该类。
您可以修改序列化的行为,并处理意外的节点等 - 例如,查看XmlSerializer MSDN页面 。
这是一个如何序列化/反序列化对象的好例子。 http://sharpertutorials.com/serialization/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.