asp.net-core - 在@code - .net Core Blazor 中访问@Inject 变量
问题描述
我是 Blazor .net Core 的新手。我在 .razor 页面中注入了服务设置
@inject Microsoft.Extensions.Options.IOptions<Configuration> Configuration
接下来我在@code
下面有初始化 _m 对象的指令
@code
{
private ViewModel _m = new ViewModel(Configuration.Value);
protected async Task DoSearchAsync()
{
await _m.PerformSearchAsync();
}
}
在ConfigureServices中注册的代码:
services.Configure<Configuration>(options =>
Configuration.GetSection("ConfigurationSettings").Bind(options));
配置.cs
public class Configuration
{
private string ServiceEndpointUrl { get; set; }
}
我需要将配置传递给ViewModel()
构造函数IOptions<T>
,但由于某种原因,我无法在@code
指令中访问我注入的变量“配置”。请问我该如何访问?
解决方案
您可以在以下方法中访问注入的服务:
@inject Microsoft.Extensions.Options.IOptions<Configuration> cfg
@code {
private ViewModel _m;
protected override void OnInitialized()
{
base.OnInitialized();
_m = new ViewModel(cfg.Value);
}
protected async Task DoSearchAsync()
{
await _m.PerformSearchAsync();
}
}
推荐阅读
- kotlin - 可以为 SQLDelight 生成的类覆盖 toString 吗?
- amazon-web-services - AWS DynamoDB 扫描过滤器表达式返回空
- lilypond - LilyPond:添加新页面
- javascript - 为什么 pop() 方法在 map 方法中使用时停止工作?
- javascript - HTML & JS 错误未显示(复选框错误显示在复选框中)
- javascript - 如何使用动态创建的只读元素提交 MVC razor beginform
- c - 追加节点返回 NULL 追加第一个元素
- php - 在 Homestead VM 上运行迁移时出现“名称解析暂时失败”
- twitter-bootstrap - 网格计算器 Bootstrap 或 Flex Box
- c++ - 函数可以返回类型数据吗?