Я застрял и мне нужен совет или указатель на решение.
Веб-API с ASP. NET Core 3.1
Startup.cs
services.AddSingleton<ITopicClient>(s => new TopicClient({connectionstring},{topic}));
TopicRepository.cs
public class TopicRepository : ITopicRepository
{
private readonly ITopicClient _topicClient1;
private readonly ITopicClient _topicClient2;
public TopicRepository (ITopicClient topicClient1, ITopicClient topicClient2)
{
_topicClient1 = topicClient1;
_topicClient2 = topicClient2;
}
public async Task<Response> SendToTopicAsync(string message, string topic)
{
if( topic == "topic1")
await _topicClient1.send(message);
else if (topic == "topic2")
await _topicClient2.send(message);
}
}
TopicClient.cs в общей библиотеке
public TopicClient(string serviceBusConnectionString, string topicName)
{
_topicClient = new TopicClient(_serviceBusConnectionString,topicName);
}
Мне нужно отправить сообщение на разные темы. Я хотел бы зарегистрировать сервисы с разными именами topi c в файле startup.cs. Я хочу повторно использовать тему клиентского соединения.
services.AddSingleton (s => new TopicClient ({connectionstring}, { topic1 }));
services.AddSingleton (s => new TopicClient ({connectionstring }, { topic2 }));
Как этого добиться, регистрируя экземпляры одного типа одного типа с использованием одного интерфейса?
Заранее спасибо!