Verwenden einer benutzerdefinierten Bindung mit dem Suchclientchannel

Wenn Sie eine benutzerdefinierte Bindung mit DiscoveryClientBindingElement verwenden, müssen Sie ein DiscoveryEndpointProvider-Objekt definieren, das DiscoveryEndpoint-Instanzen erstellt.

Erstellen eines DiscoveryEndpointProvider-Objekts

Der DiscoveryEndpointProvider ist für die Erstellung von DiscoveryEndpoint-Instanzen bei Bedarf zuständig. Um einen Suchendpunktanbieter zu definieren, leiten Sie eine Klasse von DiscoveryEndpointProvider ab, überschreiben die GetDiscoveryEndpoint-Methode und geben einen neuen Suchendpunkt zurück. Das folgende Beispiel zeigt, wie Sie einen Suchendpunktanbieter erstellen.

// Extend DiscoveryEndpointProvider class to change the default DiscoveryEndpoint  
// to the DiscoveryClientBindingElement. The Discovery ClientChannel
// uses this endpoint to send Probe message.  
public class UdpDiscoveryEndpointProvider : DiscoveryEndpointProvider  
{  
   public override DiscoveryEndpoint GetDiscoveryEndpoint()  
   {  
      return new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscoveryApril2005);  
   }  
}  

Sobald Sie den Suchendpunktanbieter definiert haben, können Sie eine benutzerdefinierte Bindung erstellen und das DiscoveryClientBindingElement hinzufügen, das auf den Suchendpunktanbieter verweist. Dies wird im folgenden Beispiel veranschaulicht.

DiscoveryClientBindingElement discoveryBindingElement = new DiscoveryClientBindingElement();  
  
// Provide the search criteria and the endpoint over which the probe is sent.  
discoveryBindingElement.FindCriteria = new FindCriteria(typeof(ICalculatorService));  
discoveryBindingElement.DiscoveryEndpointProvider = new UdpDiscoveryEndpointProvider();  
  
CustomBinding customBinding = new CustomBinding(new NetTcpBinding());  
// Insert DiscoveryClientBindingElement at the top of the BindingElement stack.  
// An exception is thrown if this binding element is not at the top.  
customBinding.Elements.Insert(0, discoveryBindingElement);  

Weitere Informationen zur Verwendung des Ermittlungsclientkanals finden Sie unter Verwenden des Ermittlungsclientkanals.

Weitere Informationen