這是我的 appsettings.json 中的相關部分
"AzureServiceBus": {
"ConnectionString": "XXXX",
"Queues": {
"Name": "DummyMessageQueue",
"Pub" : true,
"Sub" : true
}
},
問題是它_serviceBusConfiguration.Quotes始終為空。它沒有加載串列。
程式.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);
迪法
我的服務中的建構式然后按如下方式加載它
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; }
}
uj5u.com熱心網友回復:
您的配置模型:
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://www.uj5u.com/ruanti/527373.html
標籤:C#。网依赖注入
上一篇:檢查串列是否包含某些型別
下一篇:如何檢查泛型型別是否實作了介面
