将XML解析到类中失败

本文关键字:失败 XML | 更新日期: 2024-10-24 17:54:37

我使用的是:

namespace FTPUploader
{
    [XmlRoot("settings")]
    public class Settings
    {
        [XmlElement("source")]
        public Source[] Sources;
    }
    public class Source
    {
        [XmlElement("indetifier")]
        public string Indetifier;
        [XmlElement("directory")]
        public string Directory;
        [XmlElement("ftpsite")]
        public string FTPSite;
        [XmlElement("encrypt")]
        public string ShouldEncrypt;
        [XmlElement("zip")]
        public string shouldZip;
        [XmlArrayItem("specifier", typeof(Specifier))]
        [XmlElement("inclusions")]
        public Specifier[] Inclusions;
        [XmlArrayItem("specifier", typeof(Specifier))]
        [XmlElement("exclusions")]
        public Specifier[] Exclusions;
    }

    public class Specifier
    {
        [XmlText]
        public string Value;
    }
}

要解析此XML:

<settings>
  <source>
    <indetifier>1040</indetifier>
    <directory>C:'1040</directory>
    <ftpsite>ftp://corecard.com/TEstRegion/</ftpsite>
    <encrypt>yes</encrypt>
    <zip>yes</zip>
    <inclusions>
      <specifier>*.txt</specifier>
      <specifier>*.pdf</specifier>
      <specifier>*.xls</specifier>
    </inclusions>
    <exclusions>
    </exclusions>
  </source>
</settings>

使用这个:

            Settings settings;
            using (FileStream reader = new FileStream("info.xml", FileMode.Open))
            {
                XmlSerializer ser = new XmlSerializer(typeof(Settings));
                settings = ser.Deserialize(reader) as Settings;
            }

但它失败了。请告诉我哪里错了。

将XML解析到类中失败

使用XmlArray属性而不是XmlElement:

[XmlArray("inclusions")]
[XmlArrayItem("specifier", typeof(Specifier))]
public Specifier[] Inclusions;
[XmlArray("exclusions")]
[XmlArrayItem("specifier", typeof(Specifier))]
public Specifier[] Exclusions;