繁体   English   中英

如何从XML文件创建可序列化的C#类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM