在Blazor中的Index页中调用服务的方法时出现NullReferenceException



我的Index页面有@code块调用服务方法:

@using BlazingPizza.Services
@inject PizzaService PizzaService
...
@code {
private List<Pizza> specials = new List<Pizza>();
protected override async Task OnInitializedAsync()
{
specials = await PizzaService.GetPizzasAsync();
}
}

该服务已在Program.cs:中注册

builder.Services.AddSingleton<PizzaService>();

我还尝试注入接口并声明以下内容:

builder.Services.AddSingleton<IPizzaService, PizzaService>();

但每当我调用GetPizzasAsync时,就会发生异常。

NullReferenceException: Object reference not set to an instance of an object.
BlazingPizza.Pages.Index.OnInitializedAsync() in Index.razor
+
specials = await PizzaService.GetPizzasAsync();

我错过了什么?我正在遵循官方的教程。

使用builder.Services.AddSingleton<IPizzaService, PizzaService>();,但注入接口而不是类:

@inject IPizzaService PizzaService

现在PizzaService已经正确实现,并且GetPizzaAsync()方法可以用于填充您的特价商品列表。

相关内容

  • 没有找到相关文章

最新更新