2010-04-08 3 views
2

Я использую протокол hessian для связи betwee server (java) и различных клиентских приложений. Теперь я начал разрабатывать клиент Windows Phone 7. Я загрузил реализацию hessian C#, но он не компилируется для Windows Phone 7/silverlight.Гессен на Windows Phone 7/Silverlight?

Неужели кому-то удалось заставить его работать на WP7/Silverlight? Похоже, что есть много вещей, которые нужно сделать/изменить, чтобы заставить его работать, чего я бы хотел избежать, если это уже было сделано кем-то.

Спасибо.

+0

Здравствуйте, Майкл, не стесняйтесь поделиться своей реализацией WP7/silverlight? Спасибо, Теро –

+0

Привет Теро, жаль, что я не могу, это было сделано в моей работе, и поэтому все права на этот код принадлежит к моему начальнику, так что я не могу разделить :( – Michal

ответ

1

Так что вам нужно переписать реализацию hessian C#, поскольку Silverlight 4 не имеет большого количества материалов из .net-платформы для мобильных устройств, в основном класса Proxy.

1

Что это не скомпилирует? Я предполагаю, что реализация, вероятно, использует сокеты. Имейте в виду, что Silverlight (и, следовательно, wp7) ограничивает виды сетевых подключений, которые вы можете открыть ... предпочитая асинхронные веб-запросы (через класс WebRequest) или службы WCF.

Скорее всего, у вас возникли проблемы с компактной каркасной версией сетевых классов, доступных на телефоне/silverlight. Смотрите эту статью MSDN для получения дополнительной информации о поддержке сокета:
http://msdn.microsoft.com/en-us/library/cc296248%28VS.95%29.aspx

Если вы хотите общаться непосредственно между телефоном и сервером под управлением протокола Мешковины самый простой способ, вероятно, будет для прокси-соединения через сервис ФОС работает на сервер asp.net.

+0

настройки другого сервера окна с ФОС это именно то, чего мы хотим избежать ... много ошибок там .. но я его решил до сих пор ... – Michal

+0

Я понимаю, что вы бы хотели этого избежать :-) просто из любопытства, как вы его решили ? –

+0

Я должен был исправить код. Так что я принял проект компактной рамки, включенный в загрузку, который содержит только необходимые классы для клиента. Затем мне пришлось сменить фабрику CHessianProxy, реализовать собственный CHessianProxy, переписать CHessianMethodCaller для работы с асинхронными запросами Silverlight, заменить все ArrayLists на List , заменить все Hashtables на словарь и удалить поддержку типов xml, поскольку XMLDocument и Класс XMLNode в silverlight. И новый прокси CHEssian не является реальным прокси-сервером, поскольку нет удаленных и/или reflection.emit, поэтому методы вызова довольно подробные. – Michal