Blazor 使用 BackgroundService 需要注册
builder.Services.AddHostedService<PageStateService>();
razor 页面要使用 PageStateService 的实例,需要 PageStateService 有接口,我们给 PageStateService 写一个接口 IPageStateService
然后在页面直接注入实例
@inject IPageStateService pageStateService
这个时候启动程序页面会报错,
还需要把 AddHostedService 注册的这个服务的实例和接口关联
builder.Services.AddSingleton<IPageStateService>(provider =>provider.GetServices<IHostedService>().OfType<PageStateService>().Single());
这样 IPageStateService 和 AddHostedService 的实例就是同一个对象了
完整代码就这样
标签:razor,BackgroundService,IPageStateService,AddHostedService,实例,Blazor,页面 From: https://www.cnblogs.com/cchong005/p/18001606