WCF Client Configuration: how can I check if endpoint is in config file, and fallback to code if not?

后端 未结 2 856
梦谈多话
梦谈多话 2021-02-04 11:05

Looking to make a Client that sends serialized Message objects back to a server via WCF.

To make things easy for the end-developer (different departments) would be best

相关标签:
2条回答
  • 2021-02-04 12:01

    I would like to propose improved version of AlexDrenea solution, that uses only special types for configuration sections.

    Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ServiceModelSectionGroup serviceModelGroup = ServiceModelSectionGroup.GetSectionGroup(configuration);
            if (serviceModelGroup != null)
            {
                ClientSection clientSection = serviceModelGroup.Client;
                //make all your tests about the correcteness of the endpoints here
    
            }
    
    0 讨论(0)
  • 2021-02-04 12:03

    here is the way to read the configuration file and load the data into an easy to manage object:

    Configuration c = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    ConfigurationSectionGroup csg = c.GetSectionGroup("system.serviceModel");
    if (csg != null)
    {
        ConfigurationSection css = csg.Sections["client"];
        if (css != null && css is ClientSection)
        {
            ClientSection cs = (ClientSection)csg.Sections["client"];
            //make all your tests about the correcteness of the endpoints here
        }
    }
    

    The "cs" object will expose a collection named "endpoints" that allows you to access all the properties that you find in the config file.

    Make sure you also treat the "else" branches of the "if"s and treat them as fail cases (configuration is invalid).

    0 讨论(0)
提交回复
热议问题