我的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()
方法可以用于填充您的特价商品列表。