Каков наилучший способ вызова веб-службы из Windows Mobile (.NET 3.5)? - PullRequest
0 голосов
/ 21 октября 2008

Каков предпочтительный способ использования CF 3.5 для получения данных из веб-службы? Я возвращаю серию таблиц из веб-службы.

Ответы [ 2 ]

1 голос
/ 22 октября 2008

Как отмечает Джон, на самом деле он ничем не отличается от настольного вызова. Обычно вы можете добавить ссылки на службу из среды IDE и позволить Studio сгенерировать упаковщик вызовов, либо вы можете создать его вручную. Ваш случай может немного отличаться, если вы пытаетесь передать строго типизированный DataSet, поскольку сериализация рабочего стола может не соответствовать тому, что устройство хочет для десериализации. Это действительно зависит от вашего сценария использования.

Независимо от вашего механизма вызовов, стоит отметить, что вызовы веб-службы CF мучительно медленны для генерации прокси. Прокси-сервер кэшируется, но может все же занять несколько секунд при первом вызове для возврата. Хорошая практика заключается в том, чтобы веб-сервис предоставлял простой фиктивный метод (или реальный метод, если применимо), который ничего не делает, но может возвращать blittable тип. Когда приложение запускается, создайте рабочий поток для вызова этого метода, который, в свою очередь, сгенерирует прокси. Затем, когда вам нужно вызвать службу для получения реальных данных, время затрачивается только на обслуживание вызова, а не на создание прокси.

0 голосов
/ 22 октября 2008

Я всегда просто использовал классы WebRequest / WebResponse; или классы HttpWebRequest / HttpWebResponse, если это необходимо. Они немного утомительны в использовании и не так хороши, как полноценные фреймворки класса WebClient, но они работают.

...