GetEndpointName

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

Sintassi

  
<wcf:Operation Name="GetEndpointName" />  

Parametri

Nessuno.

Valore push

Stringa contenente il nome dell'endpoint di intercettazione corrente.

Osservazioni:

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

Per le applicazioni client, il nome dell'endpoint recuperato dall'operazione GetEndPointName è il nome dell'associazione 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

L'espressione di filtro di esempio seguente definisce un'intercettazione per l'operazione di ricezione per il punto di chiamata del contratto ServiceRequest per l'endpoint PurchaseOrder_EP. Questa operazione viene eseguita nei passaggi logici seguenti:

  1. Confrontare il nome dell'operazione corrente con "Receive" e eseguire il push del risultato (true o false) nello stack.

  2. Confrontare il punto di chiamata del contratto di servizio corrente con "ServiceRequest" ed eseguire il push del risultato (true o false) nello stack. Sono ora disponibili due valori booleani nello stack.

  3. Confrontare i risultati dei passaggi precedenti usando un'operazione And booleana ed eseguire il push del risultato nello stack. In questo modo viene lasciato un valore booleano nello stack.

  4. Confrontare l'endpoint corrente con "PurchaseOrder_EP" ed eseguire il push del risultato (true o false) nello stack. Sono ora disponibili due valori booleani nello stack.

  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 viene controllato il risultato del confronto tra endpoint e un valore booleano, che è true se il nome dell'operazione e il punto di chiamata del contratto corrispondono correttamente e che è 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