网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 定作论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > Silverlight > 正文
Silverlight杂记-本地程序间的互通
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 11/01/02

只要使用到两个类一个用来发送一个用来接收。

可以有多个发送端,但只能有一个接收端。

来段demo

  1. public partial class localcoon : UserControl { 
  2.        public localcoon() { 
  3.            InitializeComponent(); 
  4.            // 
  5.            _sender = new LocalMessageSender("InAction", LocalMessageSender.Global); 
  6.            textBox1.TextChanged += (s, e) => { 
  7.                { 
  8.                    _sender.SendAsync(textBox1.Text); 
  9.                } 
  10.            }; 
  11.        } 
  12.        private LocalMessageSender _sender; 
  13.        private void button1_Click(object sender, RoutedEventArgs e1) { 
  14.            //表示两个基于 Silverlight 的应用程序之间的本地消息传递通道的接收端。 
  15.            LocalMessageReceiver _receive; 
  16.            _receive = new LocalMessageReceiver("InAction"
  17.                 ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain); 
  18.            _receive.Listen(); 
  19.            _receive.MessageReceived += (s, e) => { 
  20.                textBlock3.Text = 
  21.                   "Message: " + e.Message + Environment.NewLine + 
  22.                   "NameScope " + e.NameScope + 
  23.                   " completed." + Environment.NewLine + 
  24.                   "Response: " + e.Response + Environment.NewLine + 
  25.                   "ReceiverName: " + e.ReceiverName + Environment.NewLine + 
  26. //获取此发送方会将消息发送到的 LocalMessageReceiver 的名称。 
  27.                   "SenderDomain: " + e.SenderDomain;//获取此发送方会将消息发送到的 LocalMessageReceiver 的域 
  28.            }; 
  29.        } 
  30.    } 

25

 

其中一个是IE9 一个是 opera浏览器。

一些模糊的概念

1域

详见扩展阅读

“域(Domain)”和“应用程序域(AppDomain)”不是一回事。域表明了Silverlight应用程序的位置信息,诸如:“www.myuniversity.edu.cn”之类,而应用程序域则代表了Silverlight应用程序的运行环境,Silverlight插件在装载一个Silverlight应用程序时,会为其创建一个应用程序域作为其运行环境。

假设某网页使用多个<object>元素承载了多个Silverlight应用程序,则Silverlight插件会为每个Silverlight应用程序创建相互独立的应用程序域,这些Silverlight应用程序的“域”可以相同(只要来源于同一个网站),也可以不同(如果来源于不同的网站)

2

26

3

自定义的时候可以是

  1. Receiver = new LocalMessageReceiver("InAction"
  2.  
  3.         ReceiverNameScope.Global, 
  4.  
  5. new string[] {"www.baidu.com",www.xxx.com}); 

 

如果想指定任意可以是*

4

4其最终是调用下面函数发送的

  1. [DllImport("agcore", EntryPoint="LocalMessageSend")] 
  2. private static extern uint LocalMessageSendNative 
  3. (IntPtr nativePeerPtr, uint cMessage, [MarshalAs(UnmanagedType.LPWStr)] string message,  
  4. uint cReceiverName, [MarshalAs(UnmanagedType.LPWStr)] string receiverName, 
  5.  uint cReceiverDomain, [MarshalAs(UnmanagedType.LPWStr)] string receiverDomain, uint managedKey); 

应用
本地程序通讯可以用于,只启动一个程序或者,同一个浏览器中多个关联Silverlight程序之间的信息共享。

  • 上一篇资讯: [Silverlight]
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号