Frage

Ich habe eine IExceptionHandler für die Bibliothek 4.1 Enteprise zu implementieren. In meinem Fall mag ich es verwenden, um die Ausnahme zu Fogbugz aber die inneren Details zur Anmeldung ist nicht, über was ich zu fragen. Was ich brauche, ist, wie man - am besten practicies - umzusetzen, wie die Config für eine app.config oder web.config zu bekommen. etc.

Ich habe Code Diese so weit:

   public class LcpFogbugzExceptionHandler : IExceptionHandler {
   /// <summary>
   /// Initializes a new instance of the <see cref="LcpFogbugzExceptionHandler"/> class.
   /// </summary>
   public LcpFogbugzExceptionHandler() {
        // <param name="ignore">The ignore.</param>
        //NameValueCollection ignore
    }

    /// <summary>
    /// Initializes a new instance of the <see cref="T:LcpFogbugzExceptionHandler"/> class.
    /// </summary>
    /// <param name="ignore">The ignore.</param>
   public LcpFogbugzExceptionHandler(NameValueCollection ignore) {
   }

    /// <summary>
    /// Handles the exception.
    /// </summary>
    /// <param name="exception">The exception.</param>
    /// <param name="handlingInstanceId">The handling instance id.</param>
    /// <returns></returns>
   [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)")]
    public Exception HandleException(Exception exception, Guid handlingInstanceId) {
        // Perform processing here. The exception returned will be passed to the next
        // exception handler in the chain. 

        return exception;
    }

}
War es hilfreich?

Lösung

Ich bin mir nicht sicher, was Sie von Best Practices bedeuten - Sie haben den Code Skelett richtig so einfach es füllen sich mit der Implementierung. Zufällige Punkte, die nützlich sein könnten:

Sie können Konfigurationseinstellungen in gewohnter Weise (ConfigurationManager usw.) lesen. Der Handler wird im gleichen Prozess und Thread ausgeführt wird, die ExceptionPolicy.HandleException an erster Stelle genannt.

Es wäre eine gute Idee sein, die Handler-Code Thread-sicher zu machen, für den Fall, müssen Sie Ausnahmen in mehreren Threads behandeln (und wenn Sie in diesem Projekt nicht, könnten Sie brauchen in der nächsten).

Wenn Sie nicht-statische Instanz Daten in den Handler von der anrufenden Code übergeben wollen, können Sie das Data Wörterbuch der Ausnahme bevölkern umgegangen wird, die sich durch die gesamte Behandlungskette intakt erhalten bleibt und auf das Telefonvorwahl nochmal. Ich habe diese Technik verwendet, um Daten in einen Handler zu senden, Daten aus einem Handler zurück, und ermöglichte einem Handler die Aktionen des nächsten in der Kette zu steuern. Wenn Sie dies tun, stellen Sie sicher, dass alle Data Werte serializable sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top