Почему десериализация такого XML не работает ?
От: Glestwid  
Дата: 25.12.20 20:23
Оценка:
В envelope оказывается список без транзакций. Как поменять декларацию транзакции или использование XmlSerializer чтобы вот такой xml превращался в список? XML не менять — такой приходит извне.

var newXml =@"
<reestr>
    <paymentTransaction xmlns='http://privilege.sbibank.ru/'>
        <tranId>ABCDEF</tranId>
        <tranSum>262</tranSum>
        <tranDate>2016-12-03T11:43:40.907+03:00</tranDate>
    </paymentTransaction>
    <paymentTransaction xmlns='http://privilege.sbibank.ru/'>
        <tranId>ZXCV</tranId>
        <tranSum>234.1</tranSum>
        <tranDate>2016-12-13T11:43:40.907+03:00</tranDate>
    </paymentTransaction>
    <paymentTransaction xmlns='http://privilege.sbibank.ru/'>
        <tranId>BNMF</tranId>
        <tranSum>7262</tranSum>
        <tranDate>2016-12-23T11:43:40.907+03:00</tranDate>
    </paymentTransaction>
</reestr>
";

        [XmlType("paymentTransaction")]
        public class PmtTransaction {
            [XmlElement("tranId")]
            public long TranId { get; set; }
        }

            XmlSerializer ser2 = new XmlSerializer(typeof(List<PmtTransaction>)
               , new XmlRootAttribute("reestr")
                );

            List<PmtTransaction> envelope;
            using (StringReader reader = new StringReader(newXml))
            {
                envelope = (List<PmtTransaction>)ser2.Deserialize(reader);

                return envelope;
            }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.