Взаимодействие Silverlight с веб-сервисами DataSet
-
01-07-2019 - |
Вопрос
Мой коллега оказался в "интересной" ситуации.Он работает над прототипом Silverlight (2.0), который должен вызывать существующие веб-службы на предприятии и привязывать возвращаемые данные к элементам управления отображением данных.Дело в том, что веб-сервисы возвращают наборы данных .NET (они не собираются изменять существующие реализации), а Silverlight изначально не поддерживает наборы данных.
Каким было бы хорошее обходное решение?Я думал о шаблоне адаптера, но не знаю, были бы ли веб-сервисы среднего уровня для выполнения преобразований очень хорошей идеей.Это может быть утомительно, если существует много существующих веб-сервисов.
Решение
AFAIK, когда веб-служба .NET возвращает DataSet, она возвращает его XML-представление (что довольно удобно).Тот факт, что клиент .NET может использовать DataSet напрямую, только абстрагирует тот факт, что происходит сериализация-десериализация Xml.
Поэтому я бы вручную запросил требуемые вам веб-сервисы, просмотрел сгенерированный XML-файл, а затем проанализировал его на стороне клиента.
Другая возможность заключается в том, чтобы воспользоваться тем фактом, что веб-службы используют стандартный XML-сериализатор, чтобы вы могли создавать классы C # из возвращенной схемы, а затем позволить XmlSerializer автоматически обрабатывать ее.Я не уверен, будет ли код, сгенерированный инструментом XSD.exe, дружественным к Silverlight, но попробовать стоит.
Другие советы
Попробуйте следующее: http://silverlightdataset.net
Опасности и общая мерзость наборов данных, да.Я бы использовал универсальный прокси, который отвечает за использование веб-метода и преобразование набора данных в xml / json
Ага, сильверлайт ds это отличное решение, у них даже есть встроенные в него отношения