Qual è lo scopo di scrivere gli Intercettori WCF, rispetto all'utilizzo di un metodo di supporto?

2

Per quelli di voi che non lo sanno, WCF consente di collegare gli intercettori ai metodi del contratto di servizio. L'intercettore è in grado di eseguire la logica personalizzata prima e dopo una chiamata al metodo ed è (per quanto ne so) utilizzato principalmente per la convalida dei parametri e l'esecuzione di schemi di autorizzazione personalizzati.

Ma a che serve usarli se puoi semplicemente scrivere un metodo di supporto per fare la stessa cosa?

    
posta stephen 12.08.2014 - 21:49
fonte

2 risposte

0

Abilita il principio aperto / chiuso , che è la "O" in SOLID . Afferma che i moduli dovrebbero essere aperti per l'estensione, ma chiusi per la modifica. Essenzialmente, gli intercettori ti consentono di estendere il comportamento di una chiamata di metodo aggiungendo un nuovo codice, invece di modificare il codice esistente, come dovresti fare per aggiungere una chiamata a un metodo di supporto.

Un sacco di persone molto intelligenti hanno scritto in dettaglio il motivo per cui questo è utile, ma la linea di fondo è che rende il tuo programma meno incline a rompere le vecchie funzionalità quando aggiungi nuove funzionalità.

    
risposta data 12.08.2014 - 22:55
fonte
2

MSDN ha un buon esempio di utilizzo di Interceptor per l'implementazione sicurezza dell'utente:

// Define a query interceptor for the Orders entity set.
[QueryInterceptor("Orders")]
public Expression<Func<Order, bool>> OnQueryOrders()
{
    // Filter the returned orders to only orders  
    // that belong to a customer that is the current user. 
    return o => o.Customer.ContactName ==
        HttpContext.Current.User.Identity.Name;
}
    
risposta data 12.08.2014 - 21:54
fonte

Leggi altre domande sui tag