OperationContext.当前事件:空异常

本文关键字:异常 事件 OperationContext | 更新日期: 2023-09-27 18:15:05

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

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

OperationContext.当前事件:空异常

您的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合同规范

,也会更容易解释。