Blazor 依赖注入Dependency Injection
在 Blazor 中,依赖注入(Dependency Injection, DI)
是一个重要的概念,它允许我们以解耦
的方式将服务注入到组件中。
以下是一个简单的 Blazor 依赖关系注入的代码例子。
首先,我们定义一个简单服务接口的 IDataService
和一个实现该接口的 DataService
类:
public interface IDataService
{
string GetData();
}
public class DataService : IDataService
{
public string GetData()
{
return "Data from the service!";
}
}
接下来,我们需要在 Blazor 应用的启动类
中注册
这个服务。
builder.Services.AddSingleton<IDataService, DataService>();
现在,服务已经被注册为单例(AddSingleton)
,意味着在整个应用生命周期中只有一个实例。我们也可以使用 AddScoped
或 AddTransient
来注册具有不同生命周期
的服务。
最后,在组件中使用 [inject]
属性来注入服务:
@page "/inject-service"
@using BlazorDemoApp.Services
@inject IDataService DataService
<h1>Inject Service</h1>
<p>@DataService.GetData()</p>
@code {
// 可以在这里使用 DataService,因为它已经被注入到组件中了
}
在上面的组件中,我们使用了 @inject
指令来注入 IDataService
。现在,我们可以在组件的代码中通过 DataService
属性来访问服务,并调用其方法。当组件被渲染时,Blazor 的依赖关系注入系统会处理服务的创建和注入。
示例代码
学习技术最好的文档就是【官方文档】,没有之一。
还有学习资料【Microsoft Learn】、【CSharp Learn】、【My Note】。
如果,你认为阅读这篇博客让你有些收获,不妨点击一下右下角的【推荐】按钮。
如果,你希望更容易地发现我的新博客,不妨点击一下【关注】。