Welcome

首页 / 软件开发 / Silverlight / Silverlight应用程序的本地通讯

Silverlight应用程序的本地通讯2011-09-29 博客园 金旭亮在实际开发中,可能会在同一个网页上放置多个Silverlight应用程序,而这些应用程序之间可能需要 互相通讯,比如实现两个Silverlight应用程序之间的同步。

从Silverlight 3开始,我们可以使用“System.Windows.Messaging”命名空间中的两个类—— LocalMessageSender和LocalMessageReceiver,在运行于同一台计算机上的两个Silverlight应用程序间 相互交换信息。

顾名思义,LocalMessageSender类用于发送消息,而LocalMessageReceiver则用于接收消息。

当一个Silverlight应用程序需要发送消息时,实例化一个LocalMessageSender对象,类似地,如果它 需要接收消息,实例化一个LocalMessageReceiver对象。

消息发送与接收的“配对”关系通过消息接收者的“域名+接收对象名字”来确定。只要“域名+接收 对象名字”一致,多个LocalMessageSender对象就可以向同一个LocalMessageReceiver对象发送消息。

了解了上述知识,开发能相互通讯的Silverlight应用程序就有了章法。

请看文后所附之示例解决方案LocalCommunication。

图1 在同一个网页上相互通讯的Silverlight程序

如图1所示,示例解决方案LocalCommunication在同一个ASP.NET网页上承载了两个Silverlight应用程 序。用户在发送端应用程序输入一个消息字串,并从下拉框中选择一个命令(“椭圆”或“矩形”)之后 ,发送端应用程序会将这两个信息以“;”作为间隔符组合成一个复合信息发送出去。

接收端应用程序在收到信息之后,解析收到的信息,将字串显示出来,并依据接收到命令显示一个“ 椭圆”或“矩形”。