2

特定のイベントがトリガーされたときに呼び出されるメソッドで callbackcontract メソッドを呼び出そうとしています。しかし、OperationContext.Current を取得しようとすると例外が発生します。このイベントがトリガーされたときにのみ、コールバック メソッドを呼び出すにはどうすればよいですか。

private void recordInserted()  //This method is called when the event is fired
{
 ICallbackContract callback = OperationContext.Current.GetCallbackChannel<ICallbackContract>();
 callback.insertsuccessful();
}
4

1 に答える 1

2

recordInsertedメソッドはどこから呼び出されますか? サーバ側?もしそうなら、この方法で何かを魔法のようにクライアントに送信することはできません。

クライアントが最初に接続するときは、コールバックへの参照を保存する必要があり、イベントが発生したときにこれを使用してデータをクライアントに送り返します。

例えば

public class Service
{
     ICallbackContract _callback
     public void Login()
     {
             //method your connecting client calls
         _callback = OperationContext.Current.GetCallbackChannel<ICallbackContract>();

     }
     private void recordInserted()  //This method is called when the event is fired
     {

          _callback.insertsuccessful();
     }
}

また、WCF コントラクトの仕様を投稿すると、説明が簡単になります。

于 2013-05-24T12:18:05.957 に答える