我在.net中对XML很新。作为我的任务的一部分,我需要创建可以序列化为XML的类。我有一个带有所有标签的示例XML文件(该类应该生成类似于示例XML文件的XML)。从XML文件创建类的最佳方法是什么?
提前谢谢!!
答案 0 :(得分:10)
您可以使用XSD.exe从.xml创建.cs文件。 http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.71%29.aspx
在命令行:
xsd myFile.xml
xsd myFile.xsd
第一行将生成模式定义文件(xsd),第二行应生成.cs文件。我不确定语法是否准确,但它应该让你开始。
答案 1 :(得分:4)
向后工作可能有所帮助 - 首先创建课程,然后序列化,看看你得到了什么。
对于最简单的类,它实际上非常简单。您可以使用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”实例化该类。
您可以修改序列化的行为,处理意外的节点等 - 例如,请查看the XmlSerializer MSDN page。
答案 2 :(得分:-1)
这是一个如何序列化/反序列化对象的好例子。 http://sharpertutorials.com/serialization/