/// <summary> /// Decora o analisador de Exceptions. /// </summary> /// <param name="analyser">Analisador de Exception.</param> public void Decorate(IExceptionAnalyser analyser) { if (InternalAnalyser == null) { InternalAnalyser = analyser; } else { InternalAnalyser.Decorate(analyser); } }
/// <summary> /// Inclui um exception analyser na coleção ou atualiza caso exista. /// </summary> /// <remarks> /// Caso já exista um analisador, decora com um mais específico. /// </remarks> /// <param name="type">Tipo da exception.</param> /// <param name="analyser">Analisador de Exception.</param> private static void AddExceptionAnalyser(Type type, IExceptionAnalyser analyser) { if (_analysers.ContainsKey(type)) { var actualAnalyser = _analysers[type]; actualAnalyser.Decorate(analyser); } else { _analysers.TryAdd(type, analyser); } }