如何获取特定WCF服务正在使用的绑定

时间:2015-05-13 12:43:43

标签: c# wcf wcf-binding

有没有办法从服务类本身的对象实例获取WCF服务正在使用的绑定?

我目前正在调试WCF服务并更改了客户端绑定,并希望查看它们是否是应用于代表服务接口的代理类的那个。

另外,使用ChannelFactory<IMyWCFService>.CreateChannel()方法创建代理类。但是,这是一个MVC Web应用程序,方法调用是通过依赖注入完成的。所以代理对象被注入我的代码中。

因此,为了清楚我在使用代理对象的代码中我无法访问原始的ChannelFactory。我知道ChannelFactory在设置Global.asax.cs类中的依赖注入容器时设置的绑定。但是,由于我们使用依赖注入,因此无法保证Global.asax.cs中定义的ChannelFactory或实际绑定是用于创建代理对象的那个,因为它可能已被其他代码更改。我遇到的问题是我们正在明确更改Global.asax.cs类中使用的绑定的设置值,但这些设置不会产生影响,这使得怀疑正在使用另一个绑定。

1 个答案:

答案 0 :(得分:2)

您可以从Endpoint服务对象获取绑定:

var service = new Service1Client();
Binding binding = service.Endpoint.Binding;
Console.WriteLine(binding);