关于WCF的两个问题



为什么,当定义从ClientBase<TChannel>继承的类时,服务接口是"嵌入的";两次,一次通过组合(<TChannel>中的泛型),另一次通过继承,而不仅仅是一个(像组合)?

在另一件事上,我们成功地调用了一个自定义客户端代理方法,该方法调用了base.channel接口指针的方法,并且我们遇到了一个问题,在接下来调用另一个客户端代理函数(也重定向到另一个base.channel)时,base.channel属性变成了null(因此到函数调用的时候),最终引发了NullReferenceException。为什么会发生这种情况?(我们创建ClientBase代理使用默认构造函数,不提供任何绑定信息)。编辑:问题不在于base.channel指针在第一次函数调用后被设置为null,而是每次调用都创建一个自定义服务的新实例。如何确保相同的对象是通过使用?

我找到了第二个问题的答案。解决方案(至少在我们的例子中)是建立以下属性:[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)],见这里。

尽管如此,任何人都可以自由地回答我的第一个语义问题,我将相应地奖励。

相关内容

  • 没有找到相关文章

最新更新