From 6b0097a379dd0ba57a236b400eb249ee313ef890 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 30 Apr 2025 18:44:28 +0800 Subject: [PATCH] Compatible with the new version of `HybridCache`. --- Directory.Packages.props | 2 +- .../Volo/Abp/Caching/AbpCachingModule.cs | 4 ---- .../Volo/Abp/Caching/Hybrid/AbpHybridCache.cs | 15 ++++++++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 50a05dbba1..07eaa65740 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -88,7 +88,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs index da900447df..632bfa416e 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs @@ -1,7 +1,5 @@ using Microsoft.Extensions.DependencyInjection; using System; -using Microsoft.Extensions.Caching.Hybrid; -using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.Caching.Hybrid; using Volo.Abp.Json; using Volo.Abp.Modularity; @@ -28,9 +26,7 @@ public class AbpCachingModule : AbpModule context.Services.AddSingleton(typeof(IDistributedCache<>), typeof(DistributedCache<>)); context.Services.AddSingleton(typeof(IDistributedCache<,>), typeof(DistributedCache<,>)); -#pragma warning disable EXTEXP0018 context.Services.AddHybridCache().AddSerializerFactory(); -#pragma warning restore EXTEXP0018 context.Services.AddSingleton(typeof(IHybridCache<>), typeof(AbpHybridCache<>)); context.Services.AddSingleton(typeof(IHybridCache<,>), typeof(AbpHybridCache<,>)); diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/Hybrid/AbpHybridCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/Hybrid/AbpHybridCache.cs index 2894af9f3d..66506a0b56 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/Hybrid/AbpHybridCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/Hybrid/AbpHybridCache.cs @@ -75,7 +75,7 @@ public class AbpHybridCache : IHybridCache : IHybridCache>.Instance; KeyNormalizer = keyNormalizer; @@ -215,10 +215,15 @@ public class AbpHybridCache : IHybridCache(bytes, 0, bytes.Length));; + // Because HybridCache wraps the cache in L2(distributed cache), we can’t unwrap it directly and can only retrieve the value through its API + return await HybridCache.GetOrCreateAsync( + key: NormalizeKey(key), + factory: async cancel => await factory(), + options: optionsFactory?.Invoke(), + tags: null, + cancellationToken: token); } value = await factory();