public static bool TryParse(string url, out ClientChannelConfig result, out string message) { result = new ClientChannelConfig(); message = null; Uri uri = new Uri(url, UriKind.Absolute); if (uri.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase)) { result.UseTls = true; } else if (uri.Scheme.Equals("http", StringComparison.InvariantCultureIgnoreCase)) { result.UseTls = false; } else { message = $"Invalid address: {url}. It must start with http or https."; return(false); } if (string.IsNullOrEmpty(uri.Host)) { message = $"Invalid address: {url}. Host name is empty."; return(false); } result.HostName = uri.Host; result.Port = uri.Port; return(true); }
protected MicroserviceClientBase([NotNull] ClientChannelConfig channelConfig) : this(channelConfig.HostName, channelConfig.Port, channelConfig.UseTls, channelConfig.ClientCertificate) { }