/// <summary>
/// Adds the discovery url to the hosts.
/// </summary>
/// <param name="configuration">The configuration.</param>
/// <param name="discoveryUrls">The discovery urls.</param>
public virtual void InitializeDiscovery(
ApplicationConfiguration configuration,
StringCollection discoveryUrls)
{
// create the binding factory.
BindingFactory bindingFactory = BindingFactory.Create(configuration, configuration.CreateMessageContext());
EndpointConfiguration endpointConfiguration = EndpointConfiguration.Create(configuration);
foreach (string discoveryUrl in discoveryUrls)
{
// parse discovery url.
Uri url = Utils.ParseUri(discoveryUrl);
if (url == null)
{
continue;
}
// create endpoint.
if (url.PathAndQuery.EndsWith("/discovery"))
{
Binding binding = bindingFactory.Create(url.Scheme, endpointConfiguration);
this.AddServiceEndpoint(typeof(IDiscoveryEndpoint), binding, url, url);
}
}
}