如何读取app.config文件中定义的basicHttpBinding

我试图弄清楚如何阅读如何读取app.config文件中定义的basicHttpBinding部分。 我尝试这样做,就像我做了端点地址,但它不起作用。 以下是我执行端点地址的方法:

private EndpointAddress EndPointAddy { get { var config = ConfigurationManager.GetSection("system.serviceModel/Client") as ServiceModelSectionGroup; foreach (ChannelEndpointElement endpoint in config.Client.Endpoints) { Uri address = endpoint.Address; if (address != null) { return new EndpointAddress(address); } } return null; } } 

这是我用BasicHttpBinding尝试过的

 private BasicHttpBinding Binding { get { var config = ConfigurationManager.GetSection("system.serviceModel/Client") as ServiceModelSectionGroup; foreach (ChannelEndpointElement bindings in config.Bindings.BasicHttpBinding) { string binding = config.Bindings.BasicHttpBinding; if (config.Bindings.BasicHttpBinding != null) { return new BasicHttpBinding(config.Bindings.BasicHttpBinding); } } return null; } 

但是,我收到一个错误,指出:

“foreach语句不能对’System.ServiceModel.Configuration.BasicHttpBindingCollectionElement’类型的变量进行操作,因为’System.ServiceModel.Configuration.BasicHttpBindingCollectionElement’不包含’GetEnumerator’的公共定义”

我已经尝试用BasicHttpBindingElement替换ChannelEndpointElement,但这没有帮助。 我不知道如何正确地执行此操作,以便获得与endpointAddress相同的效果。

编辑:我以为我已经解决了这个问题,但我所做的就是摆脱错误。 当我尝试调试程序时,我会收到一个

System.NullReferenceException:未将对象引用设置为对象的实例

在以下几点:

 foreach (ChannelEndpointElement bindings in config.Bindings.BasicHttpBinding.Bindings) 

然而,即使它在这一行上失败了,我注意到它上面的一行:

 var config = ConfigurationManager.GetSection("system.serviceModel") as ServiceModelSectionGroup; 

也是null。 我不确定我做错了什么。