/// <inheritdoc/> protected override void OnRequestFailure(RequestFailureDiagnosticData data) { if (data is null) { return; } if (_operationBuilders.TryGetValue(data.Operation, out var builder)) { builder.Outdent(); builder.AppendLine(TracerMessages.ExitBrace); var requestException = data.RequestException; if (requestException is DependencyResolutionException && requestException.InnerException is object) { requestException = requestException.InnerException; } if (requestException.Data.Contains(RequestExceptionTraced)) { builder.AppendLine(TracerMessages.ResolveRequestFailedNested); } else { builder.AppendException(TracerMessages.ResolveRequestFailed, requestException); } requestException.Data[RequestExceptionTraced] = true; } }
/// <summary> /// Handles the event raised when a resolve request encounters an error. /// </summary> /// <param name="data"> /// Diagnostic data associated with the event. /// </param> /// <remarks> /// <para> /// Derived classes can override this method and perform actions based /// on the event. By default, the base class does nothing. /// </para> /// </remarks> protected virtual void OnRequestFailure(RequestFailureDiagnosticData data) { }