Blazor依赖注入分三步:定义服务接口及实现类、在Program.cs中按Singleton/Scoped/Transient注册、组件中用@inject或构造函数注入使用;需注意生命周期匹配业务需求以防数据污染或内存泄漏。
Blazor 使用依赖注入(DI)来解耦组件与服务,让服务的创建、生命周期管理和使用更清晰可控。核心就三步:定义服务接口和实现类 → 在 Program.cs 中注册服务 → 在组件中通过 @inject 或构造函数获取并使用。
先写一个接口,明确服务能做什么;再写一个类实

public interface IDateTime { DateTime Now { get; } }
public class SystemDateTime : IDateTime { public DateTime Now => DateTime.Now; }
注册决定服务的生命周期和可用范围。Blazor 支持三种模式:
builder.Services.AddSingleton();
最常用方式是 @inject 指令,写在组件顶部即可:
@page "/counter"@inject IDateTime DateTimeService当前时间:@DateTimeService.Now
[Inject] public IDateTime DateTimeService { get; set; }
比如计数器服务若用 Singleton,所有用户会共享同一个计数值;若用 Scoped,每个用户独立计数更合理。选错生命周期可能导致数据污染或内存泄漏。
基本上就这些。不复杂但容易忽略注册步骤和生命周期选择。