我目前正在开发WCF双工服务,我正在尝试在我的客户端应用中实现回调方法,但是出现了错误
'App.CallbackHandler' does not implement interface member IPostingServiceCallback.retrieveNotification(Service.Posting)'
我服务的服务合约如下
[ServiceContract(SessionMode=SessionMode.Required , CallbackContract = typeof(IPostingServiceCallBack))]
public interface IPostingService
{
[OperationContract(IsOneWay = true)]
void postNotification(Posting post);
}
public interface IPostingServiceCallBack
{
[OperationContract]
String retrieveNotification(Posting post);
}
我已生成代理并添加到客户端的项目文件中,并将端点地址添加到app.config中。
修改
我目前在客户端应用中的代码是
public class CallBackHandler : IPostingServiceCallback
{
public void retrieveNotification()
{
//planning to do something
}
}
答案 0 :(得分:0)
您的客户端应用程序需要实现IPostingServiceCallBack
并定义retrieveNotification
方法。
假设您有一个将使用双工服务的客户端(不是代理):
public class MyClient : IPostingServiceCallBack
{
public String retrieveNotification(Posting post)
{
// Implement your logic here
}
}
注意以上是一个简单的例子。您的客户端也可能派生自另一个类(取决于它是ASP.NET,WinForms,WPF等)。
<强>更新强>
您仍然没有实施该方法。您的回调界面是:
public interface IPostingServiceCallBack
{
[OperationContract]
String retrieveNotification(Posting post);
}
您的实施是:
public class CallBackHandler : IPostingServiceCallback
{
public void retrieveNotification()
{
//planning to do something
}
}
您有public void retrieveNotification()
,而界面有String retrieveNotification(Posting post)
。方法签名不匹配。
你需要这样做:
public class CallBackHandler : IPostingServiceCallback
{
public String retrieveNotification(Posting post)
{
// planning to do something
}
}