事件中的OperationContext.Current:空异常

时间:2013-05-24 11:03:17

标签: c# wcf

我试图在方法中调用callbackcontract方法,该方法在触发某个事件时调用。但是当我试图获得OperationContext.Current时我得到一个例外。如何在触发此事件时调用回调方法。

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

1 个答案:

答案 0 :(得分: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合同规范

,也可以更容易解释