如何从app.config读取端点地址值

时间:2016-10-14 13:19:53

标签: c# api

我有asp.net web application并在我的app.config文件中包含以下内容。

<system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="Test" />
    <binding name="Test1">
      <security mode="Test" />
    </binding>
    <binding name="BasicHttpBinding_IService1" />
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://test:90001"
    binding="basicHttpBinding" bindingConfiguration="Test"
    contract="Test" name="HTTP_Port" />
     </client>
</system.serviceModel>

我如何get/read endpoint address有价值?

我已经遇到了这个solution,但它对我要求exe文件路径不起作用。不确定哪个exe路径文件?

1 个答案:

答案 0 :(得分:0)

     var serviceModel = ServiceModelSectionGroup.GetSectionGroup(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None));
        var endpoints = serviceModel.Client.Endpoints;
        foreach (ChannelEndpointElement e in endpoints)
        {
            if (e.Name == "HTTP_Port")
            Console.WriteLine(e.Address);
        }
        Console.ReadLine();

要从appconfig读取端点,您需要添加System.ServiceModel.Configuration的引用并使用返回serviceModel组的GetSectionGroup方法,如果您只需要可以访问的那个端点,则可以访问该部分中的所有端点。端点名称。

同样在appconfig中你提供的端口无效,我在读取带有该端口的url时出错并假设你刚刚添加了该示例。