.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{}。
posted @ 2026-11-02 19:00  头有点晕  阅读(3)  评论(0)    收藏  举报