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 MultipleAzureRedisFactoryExtensions
{
///
/// Redis数据库注入
///
///
///
///
///
public static IServiceCollection AddMultipleAzureRedis(this IServiceCollection services, List<(string name, string connectionString)> connectionInfos)
{
if (services == null) throw new ArgumentNullException(nameof(services));
if (connectionInfos == null) throw new ArgumentNullException(nameof(connectionInfos));
services.TryAddSingleton();
//多个连接字符串注入
connectionInfos.ForEach(connection =>
{
services.Configure(connection.name, o => { o.Name = connection.name; o.RedisConnectionString = connection.connectionString; });
});
////单个连接字符注入
//services.Configure(name, o => { o.Name = name; o.RedisConnectionString = connectionString; });
return services;
}
}
}