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

Das DiscoveryEndpointProvider-Objekt ist für die Erstellung von T:System:ServiceModel.Discovery.DiscoveryEndpoints nach 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 finden Sie unter zum Suchclientchannel finden Sie unter Verwenden des Suchclientchannels.Ein vollständiges Codebeispiel finden Sie unter Beispiel für Ermittlungsbindungselement

Siehe auch

Übersicht über die WCF-Suche
Verwenden des Suchclientchannels
Beispiel für Ermittlungsbindungselement