ローカルに起動しているSilverlightアプリケーション間の通信には、System.Windows.Messaging.LocalMessageReceiverクラスを利用します。 ■受信側: // ローカルメッセージの受信完了イベントハンドラ public event EventHandler<MessageReceivedEventArgs> MessageReceived; // 受信インスタンス作成 public bool RegistReceiver(string receiverName) { try { LocalMessageReceiver messageReceiver = new LocalMessageReceiver( receiverName, ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain ); // MessageReceivedイベントにイベントハンドラを追加します。 messageReceiver.MessageReceived += new EventHandler<MessageReceivedEventArgs>(OnMessageReceived); // メッセージのリッスンを開始します。 messageReceiver.Listen(); } catch { //受信アプリケーションが多重起動されている場合、この例外が発生する return false; } return true; } // ローカルメッセージの受信完了イベントハンドラ private virtual void OnMessageReceived(object sender, MessageReceivedEventArgs e) { // ローカルメッセージの受信完了イベントをヘルパクラスのイベントとしてルーティングします。 EventHandler<MessageReceivedEventArgs> handlers = this.MessageReceived; if (handlers != null) handlers(sender, e); } ■送信側: // ローカルメッセージの送信完了イベントハンドラ public event EventHandler<SendCompletedEventArgs> SendCompleted; // 送信インスタンス作成 public void RegistSender(string receiverName) { // ローカルメッセージの送信側を作成します。 LocalMessageSender messageSender = new LocalMessageSender(receiverName, LocalMessageSender.Global); // ローカルメッセージの送信完了イベントにイベントハンドラを追加します。 messageSender.SendCompleted += new EventHandler<SendCompletedEventArgs>(OnSendCompleted); } // ローカルメッセージの送信完了イベントハンドラ protected virtual void OnSendCompleted(object sender, SendCompletedEventArgs e) { // ローカルメッセージの送信完了イベントをヘルパクラスのイベントとしてルーティングします。 EventHandler<SendCompletedEventArgs> handlers = this.SendCompleted; if (handlers != null) handlers(sender, e); } // メッセージ送信 public void SendAsync(string message) { // LocalMessageSenderを使用してメッセージを送信します。 if (this.messageSender != null) this.messageSender.SendAsync(message); } あなたのお住まいの地域で最安のブロードバンド選び コメント: |