/// <summary>
        /// 通知
        /// </summary>
        /// <param name="context">异常通知上下文</param>
        public virtual async Task NotifyAsync(ExceptionNotificationContext context)
        {
            Check.NotNull(context, nameof(context));
            using var scope = ServiceScopeFactory.CreateScope();
            var exceptionSubscribers = scope.ServiceProvider.GetServices <IExceptionSubscriber>().OrderBy(x => x.Order);

            foreach (var exceptionSubscriber in exceptionSubscribers)
            {
                try
                {
                    await exceptionSubscriber.HandleAsync(context);
                }
                catch (Exception e)
                {
                    Logger.LogWarning($"{exceptionSubscriber.GetType().AssemblyQualifiedName} 异常订阅器抛出异常!");
                    Logger.LogException(e, LogLevel.Warning);
                }
            }
        }
 /// <summary>
 /// 通知
 /// </summary>
 /// <param name="context">异常通知上下文</param>
 public Task NotifyAsync(ExceptionNotificationContext context) => Task.CompletedTask;
Exemple #3
0
 /// <summary>
 /// 处理
 /// </summary>
 /// <param name="context">异常通知上下文</param>
 public abstract Task HandleAsync(ExceptionNotificationContext context);