Leggere in inglese

Condividi tramite


GetEndpointName

Inserisce il nome dell'endpoint dell'intercettazione corrente nello stack.

Sintassi

  
<wcf:Operation Name="GetEndpointName" />  

Parametri

No.

Valore push

Stringa contenente il nome dell'endpoint dell'intercettazione corrente.

Commenti

È importante tenere presente che le applicazioni client e server restituiranno nomi diversi per lo stesso nome di endpoint specificato nei file App.config.

Per le applicazioni client, il nome dell'endpoint recuperato dall'operazione GetEndPointName è rappresentato dal nome del binding seguito da un carattere di sottolineatura e dal nome del contratto.

Ad esempio, se la proprietà Name in ServiceEndpoint non è impostata ma l'associazione è impostata, il nome verrà impostato su <binding>_<contract>.

Se il nome e l'associazione non sono impostati, la proprietà Name verrà impostata sul <contratto>.

Per il servizio, il nome recuperato è il nome dell'endpoint specificato nel file App.config.

Esempio

Nell'espressione di filtro di esempio riportata di seguito viene definita un'intercettazione per l'operazione di ricezione relativa al punto di chiamata del contratto ServiceRequest per l'endpoint PurchaseOrder_EP. Questa operazione viene eseguita mediante la procedura logica seguente:

  1. Confrontare il nome dell'operazione corrente con l'operazione di ricezione e inserire il risultato (true o false) nello stack.

  2. Confrontare il nome del punto di chiamata del contratto di servizio con l'operazione "ServiceRequest" e inserire il risultato (true o false) nello stack. Nello stack sono ora presenti due valori booleani.

  3. Confrontare i risultati dei passaggi precedenti usando un'operazione Boolean And ed eseguire il push del risultato nello stack. In questo modo, nello stack rimane un solo valore booleano.

  4. Confrontare il nome dell'endpoint corrente con l'operazione "PurchaseOrder_EP" e inserire il risultato (true o false) nello stack. Nello stack sono ora presenti due valori booleani.

  5. Confrontare infine i due valori booleani nello stack usando un'operazione Boolean And e quindi eseguire il push del risultato nello stack. In questo modo è possibile verificare il risultato del confronto dell'endpoint rispetto a un valore booleano, che restituisce true se il nome dell'operazione e il punto di chiamata del contratto corrispondono e false in caso contrario.

<ic:Filter>  
  <ic:Expression>  
    <wcf:Operation Name="GetOperationName" />  
    <ic:Operation Name="Constant">  
      <ic:Argument>Receive</ic:Argument>  
    </ic:Operation>  
    <ic:Operation Name="Equals" />  
    <wcf:Operation Name="GetServiceContractCallPoint" />  
    <ic:Operation Name="Constant">  
      <ic:Argument>ServiceRequest</ic:Argument>  
    </ic:Operation>  
    <ic:Operation Name="Equals" />  
    <ic:Operation Name="And" />  
    <wcf:Operation Name="GetEndpointName" />  
    <ic:Operation Name="Constant">  
      <ic:Argument>PurchaseOrder_EP</ic:Argument>  
    </ic:Operation>  
    <ic:Operation Name="Equals" />  
    <ic:Operation Name="And" />  
  </ic:Expression>  
</ic:Filter>  

Vedere anche

Operazioni in Windows Communication Foundation