如何以编程方式发现 C# 应用程序的当前端点?

发布于 2024-11-08 21:24:54 字数 1044 浏览 0 评论 0原文

我如何编写 ac# 示例来读取我的客户端端点配置:

<client>
   <endpoint address="http://mycoolserver/FinancialService.svc"
      binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IFinancialService"
      contract="IFinancialService" name="WSHttpBinding_IFinancialService">
      <identity>
         <dns value="localhost" />
      </identity>
   </endpoint>
   <endpoint address="http://mycoolserver/HumanResourcesService.svc"
      binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHumanResourceService"
      contract="IHumanResourceService" name="WSHttpBinding_IHumanResourceService">
      <identity>
         <dns value="localhost" />
      </identity>
   </endpoint>

目标是获取端点地址数组:

List<string> addresses = GetMyCurrentEndpoints();

结果我们将得到:

[0] http://mycoolserver/FinancialService.svc  
[1] http://mycoolserver/HumanResourcesService.svc

How can I code a c# sample for reading my Client endpoint configurations:

<client>
   <endpoint address="http://mycoolserver/FinancialService.svc"
      binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IFinancialService"
      contract="IFinancialService" name="WSHttpBinding_IFinancialService">
      <identity>
         <dns value="localhost" />
      </identity>
   </endpoint>
   <endpoint address="http://mycoolserver/HumanResourcesService.svc"
      binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHumanResourceService"
      contract="IHumanResourceService" name="WSHttpBinding_IHumanResourceService">
      <identity>
         <dns value="localhost" />
      </identity>
   </endpoint>

And the goal is to obtain an array of endpoints address:

List<string> addresses = GetMyCurrentEndpoints();

As result we would have:

[0] http://mycoolserver/FinancialService.svc  
[1] http://mycoolserver/HumanResourcesService.svc

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我喜欢麦丽素 2024-11-15 21:24:54

这是我第一次回答。温柔一点:)

private List<string> GetMyCurrentEndpoints()
{
    var endpointList = new List<string>();

    var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    var serviceModel = ServiceModelSectionGroup.GetSectionGroup(config);

    foreach (ChannelEndpointElement endpoint in serviceModel.Client.Endpoints)
    {
        endpointList.Add(endpoint.Address.ToString());
    }

    return endpointList;
}

This is my first answer ever. Be gentle :)

private List<string> GetMyCurrentEndpoints()
{
    var endpointList = new List<string>();

    var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    var serviceModel = ServiceModelSectionGroup.GetSectionGroup(config);

    foreach (ChannelEndpointElement endpoint in serviceModel.Client.Endpoints)
    {
        endpointList.Add(endpoint.Address.ToString());
    }

    return endpointList;
}
扛刀软妹 2024-11-15 21:24:54
// Automagically find all client endpoints defined in app.config
ClientSection clientSection = 
    ConfigurationManager.GetSection("system.serviceModel/client") as ClientSection;

ChannelEndpointElementCollection endpointCollection =
    clientSection.ElementInformation.Properties[string.Empty].Value as ChannelEndpointElementCollection;
List<string> endpointNames = new List<string>();
foreach (ChannelEndpointElement endpointElement in endpointCollection)
{
    endpointNames.Add(endpointElement.Name);
}
// use endpointNames somehow ...

(摘自http://mostlytech.blogspot.com/2007/11/以编程方式枚举-wcf.html

// Automagically find all client endpoints defined in app.config
ClientSection clientSection = 
    ConfigurationManager.GetSection("system.serviceModel/client") as ClientSection;

ChannelEndpointElementCollection endpointCollection =
    clientSection.ElementInformation.Properties[string.Empty].Value as ChannelEndpointElementCollection;
List<string> endpointNames = new List<string>();
foreach (ChannelEndpointElement endpointElement in endpointCollection)
{
    endpointNames.Add(endpointElement.Name);
}
// use endpointNames somehow ...

(Taken from http://mostlytech.blogspot.com/2007/11/programmatically-enumerate-wcf.html)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文