我正在尝试设置双工服务。 我创建了2个接口: 第一个 - 服务器实现的接口:
[ServiceContract(CallbackContract = typeof(IBackUpServiceCallback))]
public interface IBackUpService
使用服务实现的一些方法 第二个:
public interface IBackUpServiceClient
它包含服务器在回调客户端时应该使用的方法。 工具类名称
BackUpServiceCallBack : IBackUpServiceClient
在客户端。
问题是 - 在我添加服务之后 - 编译器自动生成:
interface IBackUpServiceCallback
并要求我实施它。
我有2个回调接口。
我在客户端实现的第一个(BackUpServiceClalBack
)和第二个名称:IBackUpServiceCallback - 我无法控制它(客户端Url是“tempuri ..”)
即使BackUpServiceClalBack
实现IBackUpServiceCallback
- 它也不会在运行时到达实现方法。
我正在使用wsDualHttpBinding Binding。
有什么想法吗?
答案 0 :(得分:2)
我发现我根本不需要“添加服务参考”。 并且请原谅客户在设计时知道接口我可以使用它。
现在我不会有一个genareted代码calss。 以及代理我将使用:
private DuplexChannelFactory<IBackUpService> factory;
private IBackUpService _proxy;
InstanceContext t = new InstanceContext(implementClass);
factory = new DuplexChannelFactory<IBackUpService>(t, "nameOfBinding");
_proxy = factory.CreateChannel();
并且绑定本身将在运行时。