.net 将xml响应反序列化到自定义类中

.net 将xml响应反序列化到自定义类中,.net,xml,serialization,xml-serialization,xml-deserialization,.net,Xml,Serialization,Xml Serialization,Xml Deserialization,我正在尝试将以下xml结构反序列化为对象 <?xml version="1.0" encoding="utf-8"?> <xmlRoot> <nest1> <element1>A</element1> <nest2> <element2>aqbc</element2> <element3>vjd<

我正在尝试将以下xml结构反序列化为对象

<?xml version="1.0" encoding="utf-8"?>
<xmlRoot>
    <nest1>
        <element1>A</element1>
        <nest2>
            <element2>aqbc</element2>
            <element3>vjd</element3>
        </nest2>
    </nest1>
</xmlRoot>
如果我将XmlRoot设置为'nest2',我将收到异常;'没有预料到。如果我将该值更改为“xmlRoot”,则会得到一个空对象

<?xml version="1.0" encoding="utf-8"?>
<xmlRoot>
    <nest1>
        <element1>A</element1>
        <nest2>
            <element2>aqbc</element2>
            <element3>vjd</element3>
        </nest2>
    </nest1>
</xmlRoot>
我真的不确定我在这里哪里出了问题……

两步流程:

  • 获取XML并在其上运行
    xsd.exe
    (可在x64操作系统上的
    c:\Program Files\Microsoft SDK\Windows\v7.0a\Bin
    -或
    c:\Program Files(x86)\Microsoft SDK\Windows\v7.0a\Bin
    中找到):

    这将产生一个XML模式文件
    yourfile.xsd

  • 获取该XSD文件并再次对其运行
    XSD.exe
    ,使用
    /c
    选项:

    xsd.exe /c yourfile.xsd
    
    这将产生一个C#file
    yourfile.cs
    ,它表示XML文件结构到C#类的1:1映射,您应该能够使用它将XML文件反序列化为C#对象


  • 非常感谢这个过程成功了!它有点臃肿,但我可以把它很多了!谢谢
    xsd.exe yourfile.xml
    
    xsd.exe /c yourfile.xsd