agilelabs-fx-docs main start/setup-and-bootstrap.md

服务启动与宿主接入

本页回答第一次启动一个 AgileLabs 服务时最常见的几个问题:程序入口放哪里、宿主配置放哪里、Json 与 AutoMapper 如何统一,以及服务注册应该放在哪一层。

最短路径

  1. AgileLabApplication.StartApplicationAsync<TOptions>() 作为统一入口。
  2. 把宿主配置集中在 AppBuildOptions 及其派生类,而不是散落在 Program.cs
  3. 把 Json、AutoMapper、过滤器、应用部件收敛到稳定扩展点中。
  4. 把服务注册按职责放进 IServiceRegisterIAdvancedServiceRegister 或宿主配置方法。

启动职责怎么分层

  • Program.cs:只负责启动和选择宿主类型。
  • AppBuildOptions:负责功能开关、宿主配置和框架接入选项。
  • IServiceRegister / IAdvancedServiceRegister:负责服务和容器装配。
  • IRequestPiplineRegister / IEndpointConfig:负责运行期中间件和终结点注册。

如果你在接入认证、静态资源、Swagger 或诊断页时不确定“应该写在哪”,不要只盯着宿主页,还要继续看 请求管道与 Endpoint 注册,因为最终行为是由请求管道装配顺序决定的。

启动后的第一条阅读链

  1. 先确定宿主入口和 AppBuildOptions 的职责边界。
  2. 再确认中间件和终结点落在请求管道的哪个阶段。
  3. 最后按任务进入 WebAPIWorkContext数据访问 等具体主题页。

你需要读的页面

真实项目

相关页面