图片 1图片 2/**//*
图片 3 * LocalMessageReceiver – 本地连接接收器
图片 4 *     ReceiverName – 接收器的名称。与另1个 Silverlight 程序所设置的发送器的接收器名称相对应
图片 5 *     AllowedSenderDomains – 信任的发送器所属域名列表
图片 6 *     DisableSenderTrustCheck – 是不是不理睬 Vista 下的 IE 柒 的珍贵情势。暗许值为 false
图片 7 *     NameScope – 接收器名称是在同域唯壹照旧在全域唯壹(ReceiverNameScope.Domain 同域唯1,暗中同意值;ReceiverNameScope.Global 全域唯1)
图片 8 *     Listen() – 开头监听发送过来的信息
图片 9 *     MessageReceived事件 – 接收完毕事件
图片 10 *     
图片 11 * LocalMessageSender – 本地连接发送器
图片 12 *     ReceiverName – 接收器的名称。与另2个 Silverlight 程序所设置的接收器的接收器名称相对应
图片 13 *     ReceiverDomain – 将要发送至的接收器所属域名
图片 14 *     SendAsync(string message, object userState) – 异步发送数据。(参数一:须要发送的音信;参数二:上下文,能够传递给发送实现事件)
图片 15 *     SendCompleted事件 – 发送达成事件
图片 16 */
图片 17
图片 18using System;
图片 19using System.Collections.Generic;
图片 20using System.Linq;
图片 21using System.Net;
图片 22using System.Windows;
图片 23using System.Windows.Controls;
图片 24using System.Windows.Documents;
图片 25using System.Windows.Input;
图片 26using System.Windows.Media;
图片 27using System.Windows.Media.Animation;
图片 28using System.Windows.Shapes;
图片 29using System.Windows.Navigation;
图片 30using System.Windows.Messaging;
图片 31
图片 32namespace Silverlight30.Communication
图片 33图片 34图片 35{
图片 36    public partial class LocalConnection : Page
图片 37图片 38    图片 39{
图片 40        LocalMessageSender _sender;
图片 41
图片 42        public LocalConnection()
图片 43图片 44        图片 45{
图片 46            InitializeComponent();
图片 47
图片 48            this.Loaded += new RoutedEventHandler(LocalConnection_Loaded);
图片 49        }
图片 50
图片 51        void LocalConnection_Loaded(object sender, RoutedEventArgs e)
图片 52图片 53        图片 54{
图片 55            _sender = new LocalMessageSender(“abc”);
图片 56
图片 57            LocalMessageReceiver receiver = new LocalMessageReceiver(“xyz”);
图片 58            receiver.MessageReceived += new EventHandler<MessageReceivedEventArgs>(receiver_MessageReceived);
图片 59            receiver.Listen();            
图片 60        }
图片 61
图片 62        void receiver_MessageReceived(object sender, MessageReceivedEventArgs e)
图片 63图片 64        图片 65{
图片 66            lblResult.Text += e.Message + “\r\n”;
图片 67        }
图片 68
图片 69        private void btnSubmit_Click(object sender, RoutedEventArgs e)
图片 70图片 71        图片 72{
图片 73            _sender.SendAsync(“在 abc 单击了按钮”);
图片 74        }
图片 75    }
图片 76}
图片 77

OK
[源码下载]

图片 78<navigation:Page x:Class=”Silverlight30.Communication.BinaryXml” 
图片 79           xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” 
图片 80           xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” 
图片 81           xmlns:d=”http://schemas.microsoft.com/expression/blend/2008
图片 82           xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006
图片 83           mc:Ignorable=”d”
图片 84           xmlns:navigation=”clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation”
图片 85           d:DesignWidth=”640″ d:DesignHeight=”480″
图片 86           Title=”BinaryXml Page”>
图片 87    <Grid x:Name=”LayoutRoot”>
图片 88        <StackPanel Orientation=”Horizontal” Height=”30″>
图片 89        
图片 90            <!–补助二进制 XML 通信–>
图片 91        
图片 92            <TextBox x:Name=”txtName” Text=”webabcd” />
图片 93            <Button x:Name=”btnHelloConfig” Content=”引用服务后(使用代理),通过安顿的不二等秘书诀与服务端做二进制XML通讯” Click=”btnHelloConfig_Click” />
图片 94            <Button x:Name=”btnHelloCoding” Content=”引用服务后(使用代理),通过编程的法门与服务端做二进制XML通讯” Click=”btnHelloCoding_Click” />
图片 95        
图片 96        </StackPanel>
图片 97    </Grid>
图片 98</navigation:Page>
图片 99

图片 100using System;
图片 101using System.Collections.Generic;
图片 102using System.Linq;
图片 103using System.Net;
图片 104using System.Windows;
图片 105using System.Windows.Controls;
图片 106using System.Windows.Documents;
图片 107using System.Windows.Input;
图片 108using System.Windows.Media;
图片 109using System.Windows.Media.Animation;
图片 110using System.Windows.Shapes;
图片 111
图片 112using System.Windows.Messaging;
图片 113
图片 114namespace Silverlight30.LocalConnection
图片 115图片 116图片 117{
图片 118    public partial class MainPage : UserControl
图片 119图片 120    图片 121{
图片 122        LocalMessageSender _sender;
图片 123
图片 124        public MainPage()
图片 125图片 126        图片 127{
图片 128            InitializeComponent();
图片 129
图片 130            this.Loaded += new RoutedEventHandler(MainPage_Loaded);
图片 131        }
图片 132
图片 133        void MainPage_Loaded(object sender, RoutedEventArgs e)
图片 134图片 135        图片 136{
图片 137            _sender = new LocalMessageSender(“xyz”);
图片 138
图片 139            LocalMessageReceiver receiver = new LocalMessageReceiver(“abc”);
图片 140            receiver.MessageReceived += new EventHandler<MessageReceivedEventArgs>(receiver_MessageReceived);
图片 141            receiver.Listen();
图片 142        }
图片 143
图片 144        void receiver_MessageReceived(object sender, MessageReceivedEventArgs e)
图片 145图片 146        图片 147{
图片 148            lblResult.Text += e.Message + Environment.NewLine;
图片 149        }
图片 150
图片 151        private void btnSubmit_Click(object sender, RoutedEventArgs e)
图片 152图片 153        图片 154{
图片 155            _sender.SendAsync(“在 xyz 单击了按钮”);
图片 156        }
图片 157    }
图片 158}
图片 159

图片 160<navigation:Page x:Class=”Silverlight30.Communication.LocalConnection” 
图片 161           xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” 
图片 162           xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” 
图片 163           xmlns:d=”http://schemas.microsoft.com/expression/blend/2008
图片 164           xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006
图片 165           mc:Ignorable=”d”
图片 166           xmlns:navigation=”clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation”
图片 167           d:DesignWidth=”640″ d:DesignHeight=”480″
图片 168           Title=”LocalConnection Page”>
图片 169    <Grid x:Name=”LayoutRoot”>
图片 170        <StackPanel>
图片 171        
图片 172            <!–结合 Silverlight30.LocalConnection/MainPage.xaml 中的项目示范 Silverlight 对本地连接的支撑–>
图片 173        
图片 174            <TextBlock Text=”我是 abc” />
图片 175            <Button x:Name=”btnSubmit” Content=”提交” Click=”btnSubmit_Click” />
图片 176            <TextBlock x:Name=”lblResult” />
图片 177            
图片 178        </StackPanel>
图片 179    </Grid>
图片 180</navigation:Page>
图片 181

作者:webabcd

[索引页]
[源码下载]

BinaryXml.xaml.cs

图片 182using System;
图片 183using System.Collections.Generic;
图片 184using System.Linq;
图片 185using System.Net;
图片 186using System.Windows;
图片 187using System.Windows.Controls;
图片 188using System.Windows.Documents;
图片 189using System.Windows.Input;
图片 190using System.Windows.Media;
图片 191using System.Windows.Media.Animation;
图片 192using System.Windows.Shapes;
图片 193using System.Windows.Navigation;
图片 194
图片 195using Silverlight30.BinaryXmlService;
图片 196using System.ServiceModel.Channels;
图片 197using System.ServiceModel;
图片 198
图片 199namespace Silverlight30.Communication
图片 200图片 201图片 202{
图片 203    public partial class BinaryXml : Page
图片 204图片 205    图片 206{
图片 207        public BinaryXml()
图片 208图片 209        图片 210{
图片 211            InitializeComponent();
图片 212        }
图片 213
图片 214        void client_HelloCompleted(object sender, HelloCompletedEventArgs e)
图片 215图片 216        图片 217{
图片 218            if (e.Error == null)
图片 219                MessageBox.Show(e.Result);
图片 220            else
图片 221                MessageBox.Show(e.Error.ToString());
图片 222        }
图片 223
图片 224        private void btnHelloConfig_Click(object sender, RoutedEventArgs e)
图片 225图片 226        图片 227{
图片 228            // 通过安插文件(ServiceReferences.ClientConfig)的艺术调用以二进制 XML 通讯的 WCF 服务(需求使用代理)
图片 229            BinaryXmlServiceClient client = new BinaryXmlServiceClient();
图片 230            client.HelloCompleted += new EventHandler<HelloCompletedEventArgs>(client_HelloCompleted);
图片 231            client.HelloAsync(txtName.Text);
图片 232        }
图片 233
图片 234        private void btnHelloCoding_Click(object sender, RoutedEventArgs e)
图片 235图片 236        图片 237{
图片 238            // 通过编制程序的办法调用以2进制 XML 通讯的 WCF 服务(供给使用代理)
图片 239            BinaryMessageEncodingBindingElement binary = new BinaryMessageEncodingBindingElement();
图片 240            HttpTransportBindingElement transport = new HttpTransportBindingElement();
图片 241            CustomBinding binding = new CustomBinding(binary, transport);
图片 242            EndpointAddress address = new EndpointAddress(“http://localhost:8616/BinaryXmlService.svc“);
图片 243            BinaryXmlServiceClient client = new BinaryXmlServiceClient(binding, address);
图片 244            client.HelloCompleted += new EventHandler<HelloCompletedEventArgs>(client_HelloCompleted);
图片 245            client.HelloAsync(txtName.Text);
图片 246        }
图片 247    }
图片 248}
图片 249

  • 2进制XML通讯 – 与 WCF 服务间通讯,能够利用2进制 XML
    传递数据(升高传输质量) 
  • 本地连接 – 允许客户端的多少个 Silverlight
    程序之间直接开始展览通讯(不用经过服务端)

LocalConnection.xaml.cs

仔细商量Silverlight(3玖) – 3.0通讯之2进制XML通讯, 本地连接

Silverlight 程序 2
Silverlight30.LocalConnection/MainPage.xaml

ServiceReferences.ClientConfig

图片 250<configuration>
图片 251    <system.serviceModel>
图片 252        <bindings>
图片 253            <customBinding>
图片 254                <binding name=”CustomBinding_BinaryXmlService”>
图片 255                    <binaryMessageEncoding />
图片 256                    <httpTransport maxReceivedMessageSize=”2147483647″ maxBufferSize=”2147483647″ />
图片 257                </binding>
图片 258            </customBinding>
图片 259        </bindings>
图片 260        <client>
图片 261            <endpoint address=”http://localhost:8616/BinaryXmlService.svc
图片 262                binding=”customBinding” bindingConfiguration=”CustomBinding_BinaryXmlService”
图片 263                contract=”BinaryXmlService.BinaryXmlService” name=”CustomBinding_BinaryXmlService” />
图片 264        </client>
图片 265    </system.serviceModel>
图片 266</configuration>
图片 267

在线DEMO
http://www.cnblogs.com/webabcd/archive/2009/08/04/1538238.html

图片 268using System;
图片 269using System.Linq;
图片 270using System.Runtime.Serialization;
图片 271using System.ServiceModel;
图片 272using System.ServiceModel.Activation;
图片 273using System.Collections.Generic;
图片 274using System.Text;
图片 275
图片 276namespace Silverlight30.Service
图片 277图片 278图片 279{
图片 280图片 281    /**//// <summary>
图片 282    /// 一个不难易行的 WCF 服务
图片 283    /// </summary>
图片 284    [ServiceContract]
图片 285    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
图片 286    public class BinaryXmlService
图片 287图片 288    图片 289{
图片 290        [OperationContract]
图片 291        public string Hello(string name)
图片 292图片 293        图片 294{
图片 295            return “Hello: ” + name;
图片 296        }
图片 297    }
图片 298}
图片 299

客户端
BinaryXml.xaml

介绍
Silverlight 3.0 通讯的新增效益

二、本地连接的言传身教
Silverlight 程序 1
LocalConnection.xaml

Silverlight30.LocalConnection/MainPage.xaml.cs

示例
壹、以二进制 XML 传递数据的示范
服务端(WCF)
BinaryXmlService.svc

以上四个 Silverlight 程序间可以拓展地面通讯
Silverlight30.LocalConnectionTestPage.html

图片 300<system.serviceModel>
图片 301    <bindings>
图片 302        <customBinding>
图片 303            <binding name=”customBinding0″>
图片 304                <binaryMessageEncoding />
图片 305                <httpTransport />
图片 306            </binding>
图片 307        </customBinding>
图片 308    </bindings>
图片 309    <serviceHostingEnvironment aspNetCompatibilityEnabled=”true” />
图片 310    <behaviors>
图片 311        <serviceBehaviors>
图片 312            <behavior name=”Silverlight30.Service.BinaryXmlServiceBehavior”>
图片 313                <serviceMetadata httpGetEnabled=”true” />
图片 314                <serviceDebug includeExceptionDetailInFaults=”false” />
图片 315            </behavior>
图片 316        </serviceBehaviors>
图片 317    </behaviors>
图片 318    <services>
图片 319        <service behaviorConfiguration=”Silverlight30.Service.BinaryXmlServiceBehavior”
图片 320            name=”Silverlight30.Service.BinaryXmlService”>
图片 321            <endpoint address=”” binding=”customBinding” bindingConfiguration=”customBinding0″
图片 322                contract=”Silverlight30.Service.BinaryXmlService” />
图片 323            <endpoint address=”mex” binding=”mexHttpBinding” contract=”IMetadataExchange” />
图片 324        </service>
图片 325    </services>
图片 326</system.serviceModel>

Web.config

图片 327<UserControl x:Class=”Silverlight30.LocalConnection.MainPage”
图片 328    xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” 
图片 329    xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml
图片 330    xmlns:d=”http://schemas.microsoft.com/expression/blend/2008” xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006” 
图片 331    mc:Ignorable=”d” d:DesignWidth=”640″ d:DesignHeight=”480″>
图片 332    <Grid x:Name=”LayoutRoot”>
图片 333        <StackPanel>
图片 334        
图片 335            <!–结合 Silverlight30/Communication/LocalConnection.xaml 中的项目示范 Silverlight 对本地连接的扶助–>
图片 336        
图片 337            <TextBlock Text=”我是 xyz” />
图片 338            <Button x:Name=”btnSubmit” Content=”提交” Click=”btnSubmit_Click” />
图片 339            <TextBlock x:Name=”lblResult” />
图片 340            
图片 341        </StackPanel>
图片 342    </Grid>
图片 343</UserControl>
图片 344

图片 345<object data=”data:application/x-silverlight-2,” type=”application/x-silverlight-2″
图片 346    height=”100%” style=”float: left; width: 50%”>
图片 347    <param name=”source” value=”ClientBin/Silverlight30.xap” />
图片 348    <param name=”onError” value=”onSilverlightError” />
图片 349    <param name=”background” value=”white” />
图片 350    <param name=”minRuntimeVersion” value=”3.0.40624.0″ />
图片 351    <param name=”autoUpgrade” value=”true” />
图片 352    <a href=”http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0” style=”text-decoration: none”>
图片 353        <img src=”http://go.microsoft.com/fwlink/?LinkId=108181” alt=”Get Microsoft Silverlight”
图片 354            style=”border-style: none” />
图片 355    </a>
图片 356</object>
图片 357<object data=”data:application/x-silverlight-2,” type=”application/x-silverlight-2″
图片 358    height=”100%” style=”float: left; width: 50%”>
图片 359    <param name=”source” value=”ClientBin/Silverlight30.LocalConnection.xap” />
图片 360    <param name=”onError” value=”onSilverlightError” />
图片 361    <param name=”background” value=”white” />
图片 362    <param name=”minRuntimeVersion” value=”3.0.40624.0″ />
图片 363    <param name=”autoUpgrade” value=”true” />
图片 364    <a href=”http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0” style=”text-decoration: none”>
图片 365        <img src=”http://go.microsoft.com/fwlink/?LinkId=108181” alt=”Get Microsoft Silverlight”
图片 366            style=”border-style: none” />
图片 367    </a>
图片 368</object>

相关文章

网站地图xml地图