【发布时间】:2021-04-26 01:29:52
【问题描述】:
我正在使用 .net 核心项目。
我像这样实现了 DI:
builder.Services.AddSingleton<IMessageSender>(x => new
MessageSender(Environment.GetEnvironmentVariable("ServiceBusConnection"),"queueName"));
var serviceprovider = builder.Services.BuildServiceProvider();
ServiceBusUtils.Configure(serviceprovider.GetService<IMessageSender>());
另外,我有一个实用程序类:
public static class ServiceBusUtils
{
private static IMessageSender _messageSender;
public static void Configure(IMessageSender messageSender)
{
_messageSender = messageSender;
}
public static async Task<bool> SendMessage(ExecuteMessage<Message> message ,string queueName,string Id)
{
var message = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(Message)))
{
SessionId = Id,
};
await _messageSender.SendAsync(message);
return true;
}
}
但是我不能用参数设置queuename。
我想使用类似的实现
ServiceBusUtils.SendMessage(message,"quename");
【问题讨论】:
-
你在哪里配置你的 ServiceBusUtils.Configure(serviceprovider.GetService());?
-
在启动类中我将配置连接字符串和队列名称,但我想设置多个队列名称(动态)
-
有什么理由使用 ServiceBusUtils 作为静态类?
-
如果可能的话,是的,但我想看看其他解决方案。
标签: c# dependency-injection service servicebus