Blazor 组件和 API 控制器在使用服务时,使用的是同一个服务实例,因为它们都在同一个 ASP.NET Core 应用程序中。以下是使用示例:
在 Startup.cs 中配置服务:
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient();
//其他的配置代码
}
在 Blazor 组件中注入服务:
@inject IMyService myService
在 API 控制器中注入服务:
private readonly IMyService _myService;
public MyController(IMyService myService)
{
_myService = myService;
}
可以看到,两种情况下注入服务的方式是一样的,因此它们使用的是同一个服务实例。