2010-04-08 141 views
2

我使用hessian协议来进行服务器(java)和各种客户端应用程序之间的通信。现在我开始开发Windows Phone 7客户端。我下载了粗体C#实现,但它不能编译为Windows Phone 7/Silverlight。Windows Phone 7/Silverlight上的Hessian?

有没有人设法使WP7/Silverlight的工作?看起来好像有很多事情要做/改变才能实现,如果已经有人完成了,我想避免这种做法。

谢谢。

+0

你好迈克尔,介意分享你的WP7/silverlight实现? 感谢, 泰罗 – 2011-02-23 07:15:33

+0

泰罗你好,对不起,我不能,这是我的工作做,所以这段代码的所有权利属于我的老板,所以我不能分享:( – Michal 2011-07-04 20:23:10

回答

1

因此,答案是你必须重写粗体C#实现,因为Silverlight 4没有很多来自.net移动框架,主要是代理类的东西。

1

这是什么不编译?我猜测实现可能使用套接字。请记住,Silverlight(以及wp7)会限制您可以打开的网络连接的类型...偏好异步Web请求(通过WebRequest类)或WCF服务。

您下载的代码有可能在手机/ silverlight上提供的网络类的紧凑框架版本中出现问题。如果您想直接在手机和运行粗麻协议最简单的方法将通过WCF服务上运行的可能是代理通信的服务器之间进行通信
http://msdn.microsoft.com/en-us/library/cc296248%28VS.95%29.aspx

:请参阅此MSDN文章了解有关套接字支持的详细信息一个asp.net服务器。

+0

建立与WCF另一台Windows服务器正是我们想要避免的......许多错误在那里..但我已经解决了现在... – Michal 2010-04-14 12:39:24

+0

我明白,你想避免:-)出于好奇,你是如何解决它? – 2010-04-14 14:41:58

+0

我不得不修复代码。因此,我把包含在下载中的紧凑框架项目包含在内,其中仅包含客户端必需的类。然后我必须更改CHessianProxy工厂,实现自己的CHessianProxy,重写CHessianMethodCaller以使用silverlight的异步请求,用List 替换所有ArrayList,用Dictionary 替换所有的Hashtables,并移除对XML类型的支持,因为没有XMLDocument和Silverlight中的XMLNode类。并且新的CHEssian代理不是真正的代理,因为没有远程处理和/或反射。所以调用方法非常冗长 – Michal 2010-04-15 10:56:58