アプリケーション制御

ローカルに起動している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);
}


iディレクトリで複数のポータルサイトにディレクトリ登録

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016/04/29 (金) 11:41:40 (2940d)

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze