2010-12-06 14 views
0

こんにちは
簡単なことですが、私はそれを行う方法はわかりません。
私は、サーバー側で起こっているイベントにDLLを署名しようとしています。
クライアントはこのdllのインスタンスを持ち、サーバーから通知を受け取る必要があります。
WCFサービスからdllを消費するまでイベントを発生させる

public delegate ActionResult ActionComplitedHandler(object sender,ActionComplitedEventArgs e); 

:私は定義された(C#の)サービスの

public event ActionComplitedHandler ActionComplited; 

     public void OnActionComplited(ActionResult actionResult) 
     { 
      if (ActionComplited != null) 
      { 
       ActionComplitedEventArgs args = new ActionComplitedEventArgs(); 
       args.ActionResult = actionResult; 
       ActionComplited(this, args); 
      } 
    } 

しかし、イベントにDLLを署名しようとすると私はそれを見ます。

mySeriveInstance.ActionComplited+=... //(I don't get the eventHandler after the dot) 

私はWCFコールバックを使用しないことをお勧めします。
WCFサービスインスタンスはSingleです。
どうすれば間違っているのですか?これを行うには他の方法がありますか?
ありがとうございます。

+0

自動完了は使用できません。また、イベントを受信できません。 –

+0

オートコンプリートは表示されません。 – Igal

答えて

0

あなたがこれを行うことができる2つの基本的な方法があります。

1.)あなたのクライアントアプリケーションでWCFサービスセルフホストすることができ、およびクライアントマシンのIPアドレスでサーバーパスへの呼び出しでは、 。サーバーはプロキシを構築し、クライアントにイベントを送信したいときにコールバックすることができます。

2.)サーバーから頻繁にイベントをポーリングできます。すべてのクライアントにサービス応答の識別子を渡し、その識別子でサーバを頻繁に呼び出すことができます。サーバー側のキャッシュを使用して、配信されていないイベントのリストを格納し、クライアントがそのリンクにヒットしたときに、クライアントの最も古いイベントを返します。

関連する問題