Как я могу разобрать ответ службы REST? - PullRequest
1 голос
/ 26 июля 2011

Я настроил REST-сервис, и он работает нормально. Это ответ, который я получаю от сервиса, показан на рисунке:

enter image description here

Как я могу проанализировать этот тип запроса в моем приложении WPF?

Ответы [ 3 ]

1 голос
/ 26 июля 2011

Ответ, который у вас есть, по-видимому, представляет собой структуру XML, которая содержит информацию об издателе.Что касается синтаксического анализа, у вас есть несколько вариантов, однако все они требуют / предпочитают, чтобы у вас была схема для получающегося XML.

  1. Используйте инструмент Visual Studio XSD для создания классов схемы в вашем проекте.Получив их, вы можете десериализовать XML в объект.Затем вы можете использовать объект в своем приложении WPF.
  2. Используйте XmlDocument для загрузки XML, а затем используйте запросы xPath для извлечения необходимых данных.
  3. Используйте XDocument (linq to XML) для загрузкиЗатем XML использует запросы в стиле LINQ для извлечения нужных вам данных.

Лично я бы использовал вариант 1 - для него требуется схема (другие параметры технически не нужны), но он даетвы объекты, которые, по моему мнению, гораздо проще поддерживать и использовать, чем запросы xpath / linq.

Стоит также упомянуть, что в зависимости от того, как ссылка на службу была добавлена ​​к клиенту (и как служба предоставляет себя), вы можетеэтот класс XML уже связан со ссылкой на службу клиента.В качестве примера ссылка на службу в клиенте может позволить вам сделать это:

PublisherInfo pi = myServiceClient.GetPublisherInfo();

В этом случае все преобразования из XML в PublisherInfo обрабатываются за вас.Я предполагаю, что приведенный выше пример XML был получен путем вызова службы в браузере, поэтому преобразование в PublisherInfo, очевидно, не происходит, поскольку это происходит в клиентском коде.

1 голос
/ 26 июля 2011

Зачем вам нужно его анализировать, почему бы вам не использовать классы, сгенерированные Visual Studio, когда вы добавляете ссылку на свой сервис в проект WPF?

Если вы действительно хотите проанализировать его,используйте библиотеки Xml, упомянутые в других ответах

1 голос
/ 26 июля 2011

Ну, есть несколько способов.Вы можете использовать XmlReader, загрузить его в XmlDocument и т. Д.

В первом из этих параметров представлен конструктор, который принимает входной поток иэкземпляр XmlReaderSettings.

Но как возвращается этот ответ?Если вы продемонстрировали нам некоторый код или предоставили немного больше информации, вы можете обнаружить, что у нас есть более подходящие подходы.

...