Разобрать XML-файл и заполнить объект значениями - PullRequest
1 голос
/ 28 августа 2011

После отправки запроса с необходимыми параметрами в ответ я получаю следующий XML:

<content>
    <main>
        <IMGURL>image url</IMGURL>
        <IMGTEXT>Click Here</IMGTEXT>
        <TITLE>image title</TITLE>
        <IMGLINK>image link</IMGLINK>
    </main>
</content>

, и я также сделал следующие два класса:

[Serializable]
public class content
{
    private Main _main;
    public content()
    {
        _main = new Main();
    }
    public Main Main
    {
        get { return _main; }
        set { _main = value; }
    }
}

[Serializable]
public class Main
{
    public string IMGURL { get; set; }
    public string IMGTEXT { get; set; }
    public string TITLE { get; set; }
    public string IMGLINK { get; set; }
}

Во время отладкиЯ вижу, что в ответ я получаю желаемые результаты.Однако у меня проблемы с десериализацией XML и заполнением объекта.


Вызов метода:

public static class ImageDetails
    {
        private static string _url = ConfigurationManager.AppSettings["GetImageUrl"];

        public static content GetImageDetails(string ua)
        {
            var contenta = new content();
            _url += "&ua=" + ua;
            try
            {
                WebRequest req = WebRequest.Create(_url);
                var resp = req.GetResponse();
                var stream = resp.GetResponseStream();

                //var streamreader = new StreamReader(stream);

                //var content = streamreader.ReadToEnd();



                var xs = new XmlSerializer(typeof(content));
                if (stream != null)
                {
                    contenta = (content)xs.Deserialize(stream);
                    return contenta;
                }
            }
            catch (Exception ex)
            {
            }
            return new content();
        }
    }

1 Ответ

0 голосов
/ 28 августа 2011

Сериализатор чувствителен к регистру. Вам необходимо либо переименовать свойство content.Main в main, либо добавить к нему атрибут [XmlElement("main")].

...