模板默认添加和注入了应用运行需要的服务和选项,这些都通过扩展方法进行注入。
在ServiceDefaults中定义了应用服务共用的一些选项和服务,它们大概可以分为三类:
| 文件 | 方法 | 说明 |
|---|---|---|
| Extension.cs | AddServiceDefaults | Aspire相关配置和组件 |
| FrameworkExtensions.cs | AddFrameworkServices | 基础服务和选项(数据库/缓存等) |
| WebExtensions.cs | AddMiddlewareServices | Web在中间件相关服务 |
你可以在相应的扩展方法中添加更多共享的服务和选项。
如果需要自定义,可以在Program.cs中进行添加和覆盖。
// Program.cs // 共享基础服务:health check, service discovery, opentelemetry, http retry etc. builder.AddServiceDefaults(); // 框架依赖服务:options, cache, dbContext builder.AddFrameworkServices(); // Web中间件服务:route, openapi, jwt, cors, auth, rateLimiter etc. builder.AddMiddlewareServices(); // ...自定义服务
所有的业务实现(继承ManagerBase)类,将会通过代码生成器生成注入代码;
如果模块中实现了ModuleExtensions扩展类,将会通过代码生成器生成注入代码;
你只需要在接口服务的Program.cs中调用:
// 业务Managers builder.Services.AddManagers(); // 模块服务 builder.AddModules();
内容大纲