如何创建要从XML反序列化的类

时间:2019-04-23 09:14:34

标签: c# xml

如何创建一个C#类,必须使用该类对XML进行反序列化,如下所示

<?xml version="1.0" encoding="utf-8"?>
<XML>
    <StatusCode>-2</StatusCode>
    <Warnings />
    <Errors>
        <Error> Debtor #2 Invalid Postal Code</Error>
        <Error>Invalid lien term</Error>
    </Errors>
</XML>

3 个答案:

答案 0 :(得分:0)

尝试以下操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;


namespace ConsoleApplication110
{
    class Program
    {
        const string INPUT_FILENAME = @"c:\temp\test.xml";
        const string OUTPUT_FILENAME = @"c:\temp\test1.xml";

        static void Main(string[] args)
        {
            XmlReader reader = XmlReader.Create(INPUT_FILENAME);
            XmlSerializer serializer = new XmlSerializer(typeof(XML));
            XML xml = (XML)serializer.Deserialize(reader);

            XmlWriterSettings settings = new XmlWriterSettings();
            settings.Indent = true;
            XmlWriter writer = XmlWriter.Create(OUTPUT_FILENAME, settings);
            serializer.Serialize(writer, xml);
        }
    }
    public class XML
    {
        public int StatusCode { get; set; }
        public string Warnings { get; set; }

        [XmlArray("Errors")]
        [XmlArrayItem("Error")]
        public List<string> errors { get; set; }

    }


}

答案 1 :(得分:0)

要创建基于XML的类,请将xml复制到剪贴板,然后在Visual Studio 2017中选择菜单选项:编辑/粘贴特殊/粘贴XML作为类。

答案 2 :(得分:0)

您的班级应该像这样:

public class ErrorClass
{
    struct Error
    {
        public String message;
    }
    struct Warning
    {
        public String message;
    }

    int StatusCode;
    List<Error> Errors;
    List<Warning> Warnings;

}

错误和警告结构可能包含您发布的示例中未使用的更多项目。

相关问题