全书目录

第十五篇:ASP.NET Core 完全指南 —— 国家级综合服务枢纽宇宙

第七章:依赖注入 —— 窗口背后的部门协作机制

1 分钟 261 字 第 296 / 962 个阅读单元

依赖注入(DI,Dependency Injection)是 ASP.NET Core 的内建协作机制。你可以把它理解成:

text
窗口人员不自己去“创建审批处、档案处、短信处”,
而是由总控系统按规则把这些部门能力分配给窗口。
#注册服务
csharp
builder.Services.AddScoped<ICitizenService, CitizenService>();
builder.Services.AddScoped<IPermitService, PermitService>();
builder.Services.AddSingleton<ISystemClock, SystemClock>();
#使用服务
csharp
public class PermitService : IPermitService
{
    private readonly ICitizenService _citizenService;

    public PermitService(ICitizenService citizenService)
    {
        _citizenService = citizenService;
    }

    public Task<PermitDto> CreateAsync(CreatePermitRequest request)
    {
        // 这里可以调用 _citizenService 做核验
        throw new NotImplementedException();
    }
}
#三种常见生命周期
生命周期 含义 枢纽类比
Singleton 整个应用只一份 全国总调度总机
Scoped 每个请求一份 当前办事人这一次流程的专属工作单
Transient 每次要就新建 一次性临时工具
#一个重要原则

数据库上下文、请求级业务服务,通常更适合 Scoped
如果你把本应请求级的状态塞进 Singleton,就像把每个办事人的材料混进全国总台,迟早出事故。