static Endpoint ConstructEndpoint() { var portRaw = ConfigurationManager.AppSettings["port"]; int p; if (!int.TryParse(portRaw, out p)) { throw new ArgumentException($"Can't parse app.config appsettings Port: '{portRaw}'"); } var host = ConfigurationManager.AppSettings["host"]?.Trim()?.ToLower(); switch (host) { case "*": return(Endpoint.AllHttpWeak(p)); case "+": return(Endpoint.AllHttpStrong(p)); case "localhost": return(Endpoint.HttpLocal(p)); default: return(new Endpoint() { HostName = host, Port = p, Protocol = "http" }); } }