这是我的appsettings.json中有问题的一节
"AzureServiceBus": {
"ConnectionString": "XXXX",
"Queues": {
"Name": "DummyMessageQueue",
"Pub" : true,
"Sub" : true
}
},问题是_serviceBusConfiguration.Quotes总是空的。它没有加载列表。
Program.cs
在我的program.cs中,我按以下方式加载它
// Register configuration options for the azure service bus in a options object.
builder.Services.Configure<ServiceBusConfigurationOptions>(
builder.Configuration.GetSection("AzureServiceBus"));我尝试过添加GetChildren,但这只会导致编译错误。
builder.Services.Configure<ServiceBusConfigurationOptions>(builder.Configuration.GetSection("AzureServiceBus").GetChildren<List<Queue>>());也没帮上忙
builder.Services.Configure<ServiceBusConfigurationOptions>(options => builder.Configuration.GetSection("AzureServiceBus").Bind(options));也不起作用
var x = builder.Configuration.GetSection("AzureServiceBus");
x.GetChildren();
builder.Services.Configure<ServiceBusConfigurationOptions>(x);Di法
然后,我的服务中的构造函数按以下方式加载
public MessageReceiver(ILogger<MessageReceiver<T>> logger,
IOptions<ServiceBusConfigurationOptions> serviceBusConfiguration)
{
_logger = logger;
_serviceBusConfiguration = serviceBusConfiguration.Value;
}问题是_serviceBusConfiguration.Quotes总是空的。它没有加载列表。
类
public class ServiceBusConfigurationOptions
{
public string ConnectionString { get; set; }
public string QueueName { get; set; }
public List<Queue> Queues { get; set; }
}
public class Queue
{
public string Name { get; set; }
public bool Sub { get; set; }
public bool Pub { get; set; }
}发布于 2022-11-04 08:10:41
您的配置模型:
public class ServiceBusConfigurationOptions
{
public string ConnectionString { get; set; }
public string QueueName { get; set; }
public List<Queue> Queues { get; set; }
}队列是一个列表,但是在您的appsetting.json中,“队列”部分不是数组,这导致配置绑定失败。尝试将"AzureServiceBus“部分更改为:
"AzureServiceBus": {
"ConnectionString": "XXXX",
"Queues": [{
"Name": "DummyMessageQueue",
"Pub" : true,
"Sub" : true
}]
},https://stackoverflow.com/questions/74313780
复制相似问题