Десериализация XML во вложенный массив объектов.Снова - PullRequest
0 голосов
/ 05 декабря 2018

Я получаю XML из веб-службы.Я строю некоторые классы, чтобы десериализовать его.Это частично работает;Я получаю ожидаемые значения для примитивных членов AdvMortgage объектов.

Поскольку код такой, я получаю нулевое значение для поля Mortgage любого AdvMortgage.Это проблема, аналогичная той, которую я недавно опубликовал, но у меня действительно были проблемы с ней.Что я делаю не так?

    <Product xmlns="http://schemas.datacontract.org/2004/07/mInitechService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
       ... 
      <AdvMortgage>
        <Mortage>
          <MortgageType>...</MortgageType>
          <MortgageType>...</MortgageType>
          <MortgageType>
            <apr>4.99</apr>
            <discountPts>0.00</discountPts>
            <originationFee>0.00</originationFee>
            <pgmName>7/1 Adjustable</pgmName>
            <rate>4.875</rate>
          </MortgageType>
        </Mortage>
        <mortEffectiveDate>Rates effective 12/4/2018</mortEffectiveDate>
        <mortNote>
          ARM = Adjustable Rate Mortgage&#xD;
          &#xD;
          ...
        </mortNote>
      </AdvMortgage>
      ...
      <effectiveDate>Rates effective from 12/01/2018 through 12/31/2018</effectiveDate>
    </Product>

А на занятиях:

namespace InitechServiceEntities
{
    [XmlType(AnonymousType = true, Namespace = "http://schemas.datacontract.org/2004/07/mInitechService")]
    [XmlRoot(Namespace = "http://schemas.datacontract.org/2004/07/mInitechService", IsNullable = false)]
    public class Product
    {
        //...
        [XmlElement("AdvMortgage")]
        public AdvMortgage AdvMortgage;
        [XmlElement("effectiveDate")]
        public string effectiveDate;
    }

    [XmlType("AdvMortgage")]
    public class AdvMortgage
    {
        [XmlElement("mortEffectiveDate")]
        public string mortEffectiveDate;
        [XmlElement("mortNote")]
        public string mortNote;
        [XmlArray(ElementName = "Mortgage")]
        [XmlArrayItem(Type = typeof(MortgageType))]
        public MortgageType[] Mortgage;
    }

    [XmlType("MortgageType")]
    public class MortgageType
    {
        [XmlElement("pgmName")]
        public string pgmName;
        [XmlElement("rate")]
        public string rate;
        [XmlElement("apr")]
        public string apr;
        [XmlElement("discountPts")]
        public string discountPts;
        [XmlElement("originationFee")]
        public string originationFee;
    }
}

1 Ответ

0 голосов
/ 05 декабря 2018

grek40, er-shoaib, спасибо.Я так долго смотрел на это, и я так и не понял человека, написавшего сервис с ошибкой «Ипотека».Мне нужен отпуск.

...