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; } } }