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】。
如果,你认为阅读这篇博客让你有些收获,不妨点击一下右下角的【推荐】按钮。
如果,你希望更容易地发现我的新博客,不妨点击一下【关注】。

浙公网安备 33010602011771号