Condividi tramite


Utilizzo di un'associazione personalizzata con il canale client di individuazione

In caso di utilizzo di un'associazione personalizzata con DiscoveryClientBindingElement, è necessario definire un elemento DiscoveryEndpointProvider che crea istanze DiscoveryEndpoint.

Creazione di un elemento DiscoveryEndpointProvider

L'elemento DiscoveryEndpointProvider è responsabile della creazione di DiscoveryEndpoints su richiesta. Per definire un provider di endpoint di individuazione, derivare una classe da DiscoveryEndpointProvider ed eseguire l'override del metodo GetDiscoveryEndpoint, quindi restituire un nuovo endpoint di individuazione. Nell'esempio seguente viene mostrato come creare un provider di endpoint di individuazione.

// 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);
   }
}

Una volta definito il provider di endpoint di individuazione, è possibile creare un'associazione personalizzata e aggiungere DiscoveryClientBindingElement, che fa riferimento al provider di endpoint di individuazione, come indicato nell'esempio seguente.

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);

Per ulteriori informazioni su come utilizzare il canale client di individuazione, vedere Utilizzo del canale client di individuazione. Per un esempio di codice completo, vedere Esempio di elemento di associazione di individuazione.

Vedere anche

Attività

Esempio di elemento di associazione di individuazione

Concetti

Panoramica di WCF Discovery
Utilizzo del canale client di individuazione