using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using System;
using System.Collections.Generic;
using System.Text;
using TEAMModelOS.SDK.DI;
namespace TEAMModelOS.SDK.DI.Multiple
{
public static class MultipleAzureServiceBusFactoryExtensions
{
///
/// Function注入
///
///
///
///
///
///
public static IServiceCollection AddBIAzureServiceBus(this IServiceCollection services, List<(string name, string connectionString)> connectInfos)
{
if (services == null) throw new ArgumentNullException(nameof(services));
if (connectInfos == null) throw new AccessViolationException(nameof(connectInfos));
services.TryAddSingleton();
//多个注入
connectInfos.ForEach(connect =>
{
services.Configure(connect.name, o => { o.Name = connect.name; o.ServiceBusConnectionString = connect.connectionString; });
});
//services.Configure(name, o => { o.Name = name; o.ServiceBusConnectionString = connectionString; });//单一注入
return services;
}
}
}