Blogs
📆 2025-12-19 00:45

服务注入

模板默认添加和注入了应用运行需要的服务和选项,这些都通过扩展方法进行注入。

ServiceDefaults

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();