我试图在方法中调用callbackcontract方法,该方法在触发某个事件时调用。但是当我试图获得OperationContext.Current时我得到一个例外。如何在触发此事件时调用回调方法。
private void recordInserted() //This method is called when the event is fired
{
ICallbackContract callback = OperationContext.Current.GetCallbackChannel<ICallbackContract>();
callback.insertsuccessful();
}
答案 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合同规范
,也可以更容易解释