/// <summary>
/// Creates a binding for to use for discovering servers.
/// </summary>
/// <param name="discoveryUrl">The discovery URL.</param>
/// <param name="endpointConfiguration">The endpoint configuration.</param>
/// /// <param name="applicationConfiguration">The application configuration.</param>
/// <returns></returns>
public static DiscoveryClient Create(
Uri discoveryUrl,
EndpointConfiguration endpointConfiguration,
ApplicationConfiguration applicationConfiguration)
{
if (endpointConfiguration == null)
{
endpointConfiguration = EndpointConfiguration.Create();
}
// check if application configuration contains instance certificate.
X509Certificate2 clientCertificate = null;
try
{
if (applicationConfiguration != null &&
applicationConfiguration.SecurityConfiguration != null &&
applicationConfiguration.SecurityConfiguration.ApplicationCertificate != null)
{
clientCertificate = applicationConfiguration.SecurityConfiguration.ApplicationCertificate.Find(true).Result;
}
}
catch
{
//ignore errors
}
ITransportChannel channel = DiscoveryChannel.Create(discoveryUrl, endpointConfiguration, new ServiceMessageContext(), clientCertificate);
return(new DiscoveryClient(channel));
}