using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RedisHelper { public static class RedisServiceExtension { public static IServiceCollection AddRedisCache(this IServiceCollection services, IConfiguration configuration) { services.AddSingleton(opts => { var setting = new RedisConfig(); configuration.Bind("RedisConfig", setting); return new RedisUrl { url = setting.ToString() }; }); services.AddScoped(); services.AddScoped(); return services; } public static IServiceCollection AddRedisCacheSingleton(this IServiceCollection services, IConfiguration configuration) { services.AddSingleton(opts => { var setting = new RedisConfig(); configuration.Bind("RedisConfig", setting); return new RedisUrl { url = setting.ToString() }; }); services.AddSingleton(); services.AddSingleton(); return services; } public static IServiceCollection AddRedisCache(this IServiceCollection services, string url) { services.AddSingleton(options => new RedisUrl { url = url }); services.AddSingleton(); services.AddSingleton(); return services; } } }