Как десериализовать ответ Xml в C # - PullRequest
0 голосов
/ 01 июля 2019

У меня API, где я получаю XML-ответ

       public Task<Dictionary<long, string>> GetXMLResponse() 
       {

        Dictionary<long, string> dic = new Dictionary<long, string>();
        dic.Add(1, "a");
        dic.Add(2, "b");

        return dic;
       }

Я вызываю этот API из Windows-приложения следующим образом

       HttpWebResponse response = (HttpWebResponse)request.GetResponse();

          if (response != null)
                {
               using (var streamReader = new StreamReader(response.GetResponseStream()))
                    {
                       XmlSerializer obj = new XmlSerializer(typeof(List<MyClass>));

                       List<MyClass> class1 = (List<MyClass>)obj.Deserialize(streamReader);

                    }

Мой класс похож на это

public class MyClass
{
    [XmlElement(ElementName = "Key")]
    public long Key { get; set; }

    [XmlElement(ElementName = "Value")]
    public string Value { get; set; }
}

Я получаю следующую ошибку В документе XML есть ошибка (1, 2).

Внутреннее исключение

   <arrayofkeyvalueoflongstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> was not expected. 

Ответ от API Я получаю вот так

<?xml version="1.0"?>
-<ArrayOfKeyValueOflongstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">


-<KeyValueOflongstring>

 <Key>1</Key>

 <Value>a</Value>

</KeyValueOflongstring>


-<KeyValueOflongstring>

 <Key>2</Key>

 <Value>b</Value>

 </KeyValueOflongstring>

 </ArrayOfKeyValueOflongstring>

Пожалуйста, почему я получаю эту ошибку.

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...