ASP.NET Core 应用程序
2025-09-28 16:15:38 0 举报
AI智能生成
EFCore
作者其他创作
大纲/内容
程序入口与应用构建器初始化
var builder = WebApplication.CreateBuilder(args);builder 包含应用的配置、服务容器、日志等核心配置能力。
集成日志框架
builder.AddSerilog();
启用:HTTP 请求日志
app.UseHttpSerilog();
配置 API 文档(Swagger)
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSwaggerGen();
启用
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
{
app.UseSwagger();
app.UseSwaggerUI();
}
注册 BOS 平台服务
builder.Services.AddBos(builder.Configuration);
启用
app.UseBos();
AddBos 方法(服务注册)
services.AddSystemDbContext(...):配置系统数据库上下文,使用从配置中获取的连接字符串(MOMnextSystemConnection),用于数据库访问
services.AddJwtAuthentication(configuration):配置 JWT 认证服务,用于处理身份验证
services.AddNewtonsoftJson():配置 JSON 序列化器为 Newtonsoft.Json(替代默认的 System.Text.Json)
服务注册
AddSingleton<IIdGeneratorService, IdGeneratorService>:注册单例生命周期的 ID 生成服务(全应用共享一个实例)
【BOS】-->【MOMnext.BOS.Core】-->【\Service\System】IIdGeneratorService.cs
注册作用域生命周期的服务(每个请求创建一个实例)
账单元数据服务(IBillMetadataService)namespace MOMnext.BOS.Core.Service.System;
namespace MOMnext.BOS.Service.Metadata;【MOMnext.BOS.Core,Service.System.BilMetadataService】
插件服务(IPluginService)
依赖注入服务(IDiService)
上下文服务(IContextService)
文件服务(IFileService)
用户服务(IUserService)
注册与账单(Bill)服务
services.AddBillService()
IBillDbUtilService → BillDbUtilService:账单数据库工具服务,可能负责账单相关的数据库操作工具方法(如 SQL 构建、事务处理等)。
IBillSaveService → BillSaveService:账单保存服务,处理账单数据的保存逻辑(新增或更新)。
IBillCreateService → BillCreateService:账单创建服务,专门处理账单的初始化创建逻辑。
IBillDeleteService → BillDeleteService:账单删除服务,处理账单的删除(物理删除或逻辑删除)逻辑。
IBillOperateService → BillOperateService:账单操作服务,可能处理账单的业务操作(如审核、提交、驳回等状态变更)。
IBillViewService → BillViewService:账单视图服务,处理账单详情展示的数据组装逻辑。
IBillViewListService → BillViewListService:账单列表视图服务,处理账单列表展示的数据查询、分页、筛选等逻辑。
BillViewListService
参数:IBillOperateService operateService
IBillOperateService
BillOperateService
IWebApiService → WebApiService:Web API 服务,可能负责与其他系统通过 API 交互获取 / 提交账单相关数据。
特殊注册:services.AddScoped(typeof(EntityCodeMapService))
直接注册了具体类(未指定接口),说明EntityCodeMapService可能是一个不需要接口抽象的工具类,用于处理实体代码的映射关系(如不同模块间的代码转换、编码规则映射等)。
仓库管理系统(WMS)服务
services.AddWmsService():
IBillTypeService → BillTypeService:单据类型服务,可能负责 WMS 系统中各类单据(如入库单、出库单)的类型定义、校验等逻辑。
IBaseDataCacheService → BaseDataCacheService:基础数据缓存服务,用于缓存 WMS 中的高频访问基础数据(如仓库信息、物料编码),减少数据库查询,提升性能。
IBillFlowService → BillFlowService:单据流程服务,处理 WMS 单据的流转逻辑(如审核、执行、完成等状态变更流程)。
IContainerService → ContainerService:容器管理服务,可能处理仓储中的物理容器(如托盘、货柜、货架)的信息管理、状态追踪等。
IInventoryService → InventoryService:库存管理核心服务,负责库存数量统计、库存变动(入库 / 出库)、库存预警等核心逻辑。
INumberGenerationService → NumberGenerationService:编号生成服务,用于生成 WMS 相关的唯一编号(如库存编码、容器编号、单据编号等),确保编号规则统一。
IWarehouseService → WarehouseService:仓库基础信息服务,处理仓库、库区、库位等基础信息的管理(新增、修改、查询等)。
特殊注册:services.AddScoped(typeof(EntityCodeMapService))
UseBos 方法(中间件配置)
app.UseRefreshToken():启用令牌刷新功能,用于处理 JWT 令牌过期后的刷新逻辑
app.UsePluginService():初始化插件服务,用于加载和启用应用中的插件功能
appsettings.json
在ASP.NET Core 中,appsettings.json(及环境特定配置文件如appsettings.Development.json)的配置会被自动加载到应用的配置系统中,上述代码主要通过builder.Configuration对象来间接调用这些配置。
启用认证与授权
app.UseAuthentication(); // 认证
app.UseAuthorization(); // 授权
app.UseAuthorization(); // 授权
映射控制器路由
app.MapControllers();
启动应用
app.Run();
用例分析
列表数据查询
http://192.168.0.111:30040/api/ViewListData/SysBdWarehouse/search
前端请求 → 控制器接收并转发 → 视图服务转换参数 → 操作服务调用插件 → 插件执行查询(含分页 / 过滤) → 返回结果
调用链条:核心是从控制器接收请求,经过服务层处理,最终通过插件和数据库操作完成业务逻辑
1. 核心调用链路(从请求到处理结果)
ViewListDataController → IBillViewListService → IBillOperateService → IPluginService
ViewListDataController → IBillViewListService → IBillOperateService → IPluginService
{"BillKey":"SysBdWarehouse","SumForFields":[],"DynamicFilter":{"items":[],"isOr":false},"Pageable":{"CurrentPage":1,"PageSize":10}}
0 条评论
下一页