public class MessagingClientCache
{
private readonly IMessagingClientFactory _messagingClientFactory;
private readonly ConcurrentDictionary<string, IMessagingClient> _messagingClients =
new();
public MessagingClientCache(IMessagingClientFactory messagingClientFactory)
{
_messagingClientFactory = messagingClientFactory;
}
public async Task<IMessagingClient> MessagingClientGet(string name) =>
_messagingClients.GetOrAdd(
key: name,
valueFactory: _ => _messagingClientFactory.Create(name).GetAwaiter().GetResult());
}
public class MessagingClientCache
{
private readonly IMessagingClientFactory _messagingClientFactory;
private readonly ConcurrentDictionary<string, IMessagingClient> _messagingClients =
new();
public MessagingClientCache(IMessagingClientFactory messagingClientFactory)
{
_messagingClientFactory = messagingClientFactory;
}
public async Task<IMessagingClient> MessagingClientGet(string name) =>
_messagingClients.GetOrAdd(
key: name,
valueFactory: _ => _messagingClientFactory.Create(name).GetAwaiter().GetResult());
}