Sto utilizzando WebAPI v2.2 e sto ottenendo WebAPI per deserializzare JSON su un oggetto utilizzando l'attributo [FromBody]. La classe di destinazione del deserialisation ha un attributo [OnDeserialized] su un metodo interno, in questo modo:Cattura l'eccezione durante la deserializzazione della richiesta in WebAPI C#
[OnDeserialized]
internal void OnDeserialisedMethod(StreamingContext context) {
// my method code
}
io so per certo che c'è un problema con il codice all'interno di questo metodo, ho fatto un passo attraverso di essa e trovato. Il problema per me è che non ho alcuna eccezione. Quello che succede è che questo metodo viene saltato fuori e l'eccezione sembra essere ignorata. Viene richiamata l'azione del mio controller e il mio oggetto target non è popolato correttamente perché questo metodo di serializzazione non è stato eseguito correttamente.
La mia domanda è; come posso catturare un'eccezione che si verifica durante la deserializzazione in WebAPI?
http://www.asp.net/web-api/overview/error-handling/web-api-global-error-handling –
Ho fatto come suggerito su quella pagina web ma ancora non seleziona l'eccezione? Derivando dalla classe ExceptionHandler e registrando con 'config.Services.Replace (typeof (IExceptionHandler), new Exceptions.MyExceptionHandler());' – Anupheaus
In realtà ottengono l'eccezione, ma non l'eccezione che desidero. Rileva l'eccezione in cui la mia classe di destinazione non è popolata correttamente, non vede ancora alcuna eccezione dal metodo OnDeserialized. Devo rilevare gli errori PRIMA che entri nel metodo di azione del controller e questo sembra essere un problema qui, sembrano essere semplicemente ignorati. – Anupheaus