4 pagine in totale: <<Indietro 1 2 3 [4]
Aggiungere la classe alla pipeline di WCF
Una volta creata la classe, questa va aggiunta alla pipeline di WCF per far si che questo la veda. Poiché il funzionamento della pipeline è strettamente legato ai dispatcher, bisogna aggiungere la classe a tutti i dispatcher.
Per fare questo abbiamo a disposizione sia un modello dichiarativo in fase di configurazione, che un modello imperativo, ovvero da codice. Come sempre, comunque, sfruttare la fase di configurazione è la soluzione ideale.
Se si sceglie la via imperativa, l'unico modo in cui si può aggiungere la classe alla pipeline è implementando nel servizio l'interfaccia IServiceBehavior ed aggiungendo l'oggetto alla lista dei gestori degli errori tramite il metodo ApplyDispatchBehavior dell'interfaccia appena nominata.
class Service : IContract, IServiceBehavior{
public void ApplyDispatcherBehavior (ServiceDescription description, ServiceHostBase host){
MyErrorHandler errorHandler = new myerrorHandler();
foreach(ChannelDispatcher dispatcher in host.ChannelDispatchers) {
dispatcher.ErrorHandlers.Add(errorHandler);
}
}
} Se invece si decide per la configurazione questo è il codice xml da inserire:
<system.servicemodel>
<services>
<service name="Service" behaviorConfiguration="errors">
...
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="errors">
<handleErrors/>
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name=" handleErrors " type="WCFTest.MyErrorHandler, WCFTest" />
</behaviorExtensions>
</extensions>
Conclusioni
Come si è visto in questo articolo, WCF introduce grandi novità anche nel campo della gestione degli errori semplificando di molto la fase di manutenzione del servizio e la scrittura del codice necessario. Il tutto, con un occhio di riguardo alle performance ed alla scalabilità del sistema, grazie alla possibilità di avere la fase di logging su un altro thread già in maniera nativa, senza dover ricorrere a codice proprietario per ottenere questa feature.
4 pagine in totale: <<Indietro 1 2 3 [4]
Contenuti dell'articolo
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Difficoltà
Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!

Complimenti Stefano, gran bell'articolo. Grazie!
Continua »»» | Rispondi »»»