2

我试图在一个方法中调用一个回调合约方法,该方法在某个事件被触发时被调用。但是当我试图获取 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 回答