如何以编程方式获取客户端代理正在使用的绑定?
我有一个在运行时使用 DuplexChannelFactory 生成的 WCF 代理。
仅给出从 DuplexChannelFactory 返回的服务接口,如何访问绑定信息?
我可以通过转换到 IClientChannel 来获取大部分内容,但我似乎无法在那里找到绑定信息。我能得到的最接近的是 IClientChannel.RemoteAddress,它是一个端点,但似乎也没有绑定信息。 :-/
I have a WCF proxy generated at runtime with DuplexChannelFactory.
How can I access the binding information given only the service interface returned from DuplexChannelFactory?
I can get most stuff by casting to an IClientChannel, but I can't seem to find binding info on there. The closest I can get is IClientChannel.RemoteAddress which is an endpoint, but that doesn't seem to have binding info either. :-/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不能(直接)。您可以从通道中获取一些信息,例如消息版本 (
channel.GetProperty()
) 和其他值。但绑定不是其中之一。通道是在绑定被“解构”之后创建的(即,扩展到其绑定元素中,而每个绑定元素可以向通道堆栈中再添加一块)。但是,如果您希望在代理通道中拥有绑定信息,您可以可以使用上下文通道的扩展属性之一自行添加。下面的代码显示了一个示例。
You can't (directly). There are a few things which you can get from the channel, such as the message version (
channel.GetProperty<MessageVersion>()
), and other values. But the binding isn't one of those. The channel is created after the binding is "deconstructed" (i.e., expanded into its binding elements, while each binding element can add one more piece to the channel stack.If you want to have the binding information in the proxy channel, however, you can add it yourself, using one of the extension properties of the context channel. The code below shows one example of that.