Freigeben über


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 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 über zum Suchclientchannel finden Sie unter Verwenden des Suchclientchannels. Ein vollständiges Codebeispiel finden Sie unter Beispiel für Ermittlungsbindungselement

Siehe auch

Aufgaben

Beispiel für Ermittlungsbindungselement

Konzepte

Übersicht über die WCF-Suche
Verwenden des Suchclientchannels