.NET core 依赖注入之service配置
DI依赖注入配置
举例:builder.Services.AddScoped<IWorkOrderService, WorkOrderService>();
- <> 里的第一个类型是“外部依赖的抽象类型”,第二个类型是“真正创建的具体实现”。
- 含义是当 Controller 或其他类需要 IWorkOrderService 时,DI 容器创建并注入 WorkOrderService。
- 如果不使用接口,也可以直接注册具体类:builder.Services.AddScoped
();
常见注册方式
| 注册方式 | 生命周期 | 常见用途 |
|---|---|---|
AddTransient |
每次解析都创建新对象 | 无状态、轻量工具类 |
AddScoped |
每个 HTTP 请求创建一次 | Service、Repository、DbContext |
AddSingleton |
应用启动后通常只有一个实例 | 配置、缓存、线程安全的无状态服务 |
使用已注册的服务
public sealed class UserService(
IWorkOrderService workOrderService)
{
public async Task DoSomethingAsync()
{
await workOrderService.CreateAsync(...);
}
}
- 注意其中加(IWorkOrderService workOrderService)就是传参的构造函数,语法糖,非常方便的写法。
- 不加括号直接加大括号就是无参数构造函数: public class UserService{}。

浙公网安备 33010602011771号