Sto cercando un metodo a livello di applicazione per rilevare le eccezioni generate dai getter di proprietà del database (e setter, ma è fattibile senza la stessa difficoltà).WPF Databinding: Eccezioni di cattura generate dai getter di proprietà
Nessuno di questi eventi sarà cattura eccezioni generate dal Getters:
AppDomain.CurrentDomain.UnhandledException
Application.Current.DispatcherUnhandledException
Application.Current.Dispatcher.UnhandledException
Un'altra idea è quella di utilizzare una classe personalizzata vincolante con un UpdateSourceExceptionFilter come descritto in this thread. Sfortunatamente questo metodo cattura solo eccezioni nei setter di proprietà, non nei getter.
L'ultima opzione che ho visto è quello di utilizzare un PresentationTraceSources traccia ascoltatore:
PresentationTraceSources.Refresh();
PresentationTraceSources.DataBindingSource.Listeners.Add(new PresentationLoggingTraceListener());
PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Error;
Questo metodo non sembra fare sostanzialmente quello che voglio. Sfortunatamente, mi dà solo una stringa, non un'eccezione, il che significa che dovrei fare un po 'di lavoro di analisi per ottenere l'errore effettivo.
Il metodo TraceListener probabilmente funzionerebbe alla fine, ma sembra un po 'hackerato. Ci sono altre opzioni che mi mancano, o sono abbastanza bloccato con TraceListener?
Mi piacerebbe vedere una risposta per questo –