【发布时间】:2022-01-09 04:00:55
【问题描述】:
这是我的应用设置
{
"Messages": {
"ApiUrl": "demo",
"ApiKey": {
"Key": "key",
"Value": "1234"
}
}
}
模型类:
public class CPSSettings
{
public Messages Messages { get; set; } = null!;
}
public class Messages
{
public string ApiUrl { get; set; } = null!;
public KeyValuePair<string?, string?> ApiKey{ get; set; }
}
我没有得到 _settings.Messages.ApiKey.Key 和 _settings.Messages.ApiKey.Value 的值
但收到ApiUrl 的值。我对 KeyValuePair 没有收到值有疑问
public testClient(IOptions<CPSSettings> options)
{
_settings = options.Value;
}
//...
if (_settings.Messages.ApiKey.Key is not null
&& _settings.Messages.ApiKey.Value is not null)
{
var s = _settings.Messages.ApiKey.Key; // am getting null vaues in both
var s1 = _settings.Messages.ApiKey.Value
}
【问题讨论】:
-
您的代码看起来很混乱。你的设置文件有
ApiKey;你的Messages类有UserId;但访问它的代码有ApiKey。 -
我看不到您在哪里定义和分配设置。可以发一下吗?
-
@RichardDeeming 抱歉我已经更新了..我在课堂上删除了一些代码...请检查更新的问题
-
@Ajt KeyValuePair 的成员是只读的。初始化结构后,框架无法设置这些值
-
@Ajt 使用您控制的另一种对象类型。有可修改的成员
标签: c# .net asp.net-core