2015-02-26 12 views
5

Qual è il modo migliore per gestire più implementazioni di IExceptionHandler in WebAPI?Implementazioni multiple di IExceptionHandler

config.Services.Replace(typeof(IExceptionHandler), new ExceptionHandlerFilter()); 
config.Services.Add(typeof(IExceptionHandler), new ValidationExceptionHandlerFilter()); 

Quando si tenta di registrare più di 1 implementazione, l'avvio genera un'eccezione:.

Il tipo di servizio IExceptionHandler non è supportato \ r \ nParameter nome: serviceType

Ma l'API suggerisce che sono supportati più gestori poiché esiste una proprietà ShouldHandle da sovrascrivere nella classe ExceptionHandler.

risposta

4

Non è possibile registrare più le a IExceptionHandler

Sosteniamo che registrano più logger eccezione, ma solo un singolo gestore di eccezioni.

fonte: Global Error Handling in ASP.NET Web API

Le ShouldHandle proprietà viene utilizzato per ottenere solo l'eccezione in cima alla pila

+0

Sì, un peccato, doveva risolvere questo con l'utilizzo del gestore come una fabbrica e cerca l'eccezione in un gruppo di classi e lascia che sia la classe corretta a gestirlo. Ha funzionato bene alla fine. – Phill

Problemi correlati