如何在 blazor 组件类中对自己的服务使用依赖项注入?
组件类:
[Inject]
public HttpContentFormatter IHttpContentFormatter {
get;
set;
}
假设应用是客户端 Blazor,则应将对象添加到 DI 容器,如下所示:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpContentFormatter>();
}
public void Configure(IComponentsApplicationBuilder app)
{
app.AddComponent<App>("app");
}
}
在组件中,您可以像这样注入对象:
@inject IHttpContentFormatter HttpContentFormatter
我是这样做的:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpContentFormatter, HTTPContentFormatter>();
}
AddXxxx 方法的第二个类型参数是要实现 IHttpContentFormatter 接口的具体类型。 那么@Inject声明就像你说的那样工作。