OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构( 五 )

12. 全局异常捕获记录基于MediatR 异常接口实现异常捕获 。

OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构

文章插图
OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构

文章插图
public class CommonExceptionHandler<TRequest, TResponse, TException> : IRequestExceptionHandler<TRequest, TResponse, TException>where TException : Exception where TRequest: IRequest<TResponse>{private readonly ILogger<CommonExceptionHandler<TRequest, TResponse,TException>> _logger;private readonly ICurrentUserService _currentUserService;private readonly ICurrentTenantService _currentTenantService;public CommonExceptionHandler(ILogger<CommonExceptionHandler<TRequest, TResponse, TException>> logger, ICurrentUserService currentUserService, ICurrentTenantService currentTenantService){this._logger = logger;_currentUserService = currentUserService;_currentTenantService = currentTenantService;}public Task Handle(TRequest request, TException exception, RequestExceptionHandlerState<TResponse> state, CancellationToken cancellationToken){var name = typeof(TRequest).Name;_logger.LogError(exception, $"Request Error: {name} {state} Tenant:{_currentTenantService.TenantId} User:{_currentUserService.UserId}", request);//state.SetHandled();return Task.CompletedTask;}}三、相关技术如下* .NET Core 7.0 RC1
* ASP.NET Core 7.0 RC1
* Entity Framework Core 7.0 RC1
* MediatR 10.0.1
* Npgsql.EntityFrameworkCore.PostgreSQL 7.0.0-rc.1
* Newtonsoft.Json 13.0.1
* Mapster 7.4.0-pre03
* FluentValidation.AspNetCore 11.2.2
* GRPC.Core 2.46.5
四、 找工作博主有10年以上的软件技术实施经验(Tech Leader),专注于软件架构设计、软件开发和构建,专注于微服务和云原生(K8s)架构,.Net Core\Java开发和Devops 。
博主有10年以上的软件交付管理经验(Project Manager,Product Ower),专注于敏捷(Scrum)项目管理、软件产品业务分析和原型设计 。
博主能熟练配置和使用 Microsoft Azure 和Microsoft 365 云平台,获得相关微软认证和证书 。
我家在广州,也可以去深圳工作 。做架构和项目管理都可以,希望能从事稳定行业的业务数字化转型 。有工作机会推荐的朋友可以加我微信 15920128707,微信名字叫Jerry.
【OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构】

经验总结扩展阅读