ServiceCollectionExtensions.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Microsoft.Extensions.DependencyInjection;
  2. namespace Masuit.Tools.Core.NoSQL
  3. {
  4. /// <summary>
  5. /// asp.net core依赖注入容器扩展
  6. /// </summary>
  7. public static class ServiceCollectionExtensions
  8. {
  9. /// <summary>
  10. /// 注入一个本地化的RedisHelper
  11. /// </summary>
  12. /// <param name="services"></param>
  13. /// <returns></returns>
  14. public static IServiceCollection AddLocalRedisHelper(this IServiceCollection services)
  15. {
  16. return AddRedisHelper(services, "local");
  17. }
  18. /// <summary>
  19. /// 注入一个默认的RedisHelper实例
  20. /// </summary>
  21. /// <param name="services"></param>
  22. /// <param name="redisHost"></param>
  23. /// <returns></returns>
  24. public static IServiceCollection AddDefaultRedisHelper(this IServiceCollection services, string redisHost)
  25. {
  26. return AddRedisHelper(services, "default", redisHost);
  27. }
  28. /// <summary>
  29. /// 注入RedisHelper
  30. /// </summary>
  31. /// <param name="services"></param>
  32. /// <param name="name"></param>
  33. /// <param name="redisHost"></param>
  34. /// <returns></returns>
  35. public static IServiceCollection AddRedisHelper(this IServiceCollection services, string name, string redisHost = null)
  36. {
  37. RedisHelperFactory.ConnectionCache[name] = redisHost;
  38. services.AddTransient<RedisHelperFactory>();
  39. return services;
  40. }
  41. }
  42. }