依赖注入
通过使用@inject
指令,在每个组件级别的blazor中实现依赖注入(DI)。
我们可以在Startup.cs> ConfigureServices
函数中以与MVC应用程序相同的方式注入依赖项,如下所示,并且可以在blazor组件中使用。这些服务的生命周期是类似的MVC应用程序,比如Singleton
,Transient
和Scoped
我们在这里使用现有的ASP.Net的生态系统,
// In Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IDataAccess, DataAccess>();
}
//DiComponent.razor
@page '/dependency-inject'
@using Services
@inject IDataAccess DataObject
@if (Students != null)
{
Total Student: @Students.Count.ToString();
}
@functions {
private List<Student> Students;
protected override async Task OnInitAsync()
{
Students = await DataObject.GetStudentData();
}
}