c# - 仅当服务存在时,如何在 blazor 中注入服务?
问题描述
如果我使用Inject
属性并尝试注入未注册的服务,它会给我错误There is no registered service of type X
。
那么如何在不给我这个错误的情况下注入服务,如果没有注入服务,服务将只是空的。这可能吗?
例如
Foo
如果未注册,这会给我一个错误。
[Inject]
protected Foo Foo { get; set; }
但我想允许Foo
未注册,在这种情况下它将是null
.
解决方案
你可以这样做
@inject IServiceProvider ServiceProvider
@code
{
private IMyService MyService;
protected override void OnInitialized()
{
MyService = ServiceProvider.GetService<IMyService>();
base.OnInitialized();
}
}
推荐阅读
- laravel - 如何为 X-CSRF-TOKEN 启用生命周期活动状态
- amazon-web-services - VPS上的spring boot 2无法访问
- c - 内循环索引不等于外循环索引时的嵌套循环
- aws-lambda - 使用 AWS-Express 从 AWS Lambda 和 API Gateway 传递 HTML 数据
- java - 不能在片段内使用显示对话框功能?
- node.js - MongoDB $project 和 $in 合计
- google-chrome - 在 Chrome 中单击 Show In Folder 时阻止打开 Visual Studio Code
- python - 为什么小部件在 OOP 版本中重叠
- java - 用于接口的 Kafka JSON 反序列化器
- java - 缓冲读取器在读取 FIS 时抛出 FileNotFound 异常