From f0380b9b01facd0272c71bacc229c2951b2e5dd1 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 30 Apr 2025 18:15:07 +0800 Subject: [PATCH 1/3] Downgrade Microsoft.Extensions.Caching.Hybrid version. --- Directory.Packages.props | 2 +- .../src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 9916d0b2bd..05ca968762 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 de5f60ee4e..da900447df 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs @@ -28,7 +28,9 @@ 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<,>)); From 9f89f16048529f3c8a821d9540c92db338184335 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 30 Apr 2025 18:21:46 +0800 Subject: [PATCH 2/3] Downgrade MongoSandbox package versions to 1.0.1 --- Directory.Packages.props | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 05ca968762..50a05dbba1 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -38,10 +38,10 @@ - - + + - + From 6b0097a379dd0ba57a236b400eb249ee313ef890 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 30 Apr 2025 18:44:28 +0800 Subject: [PATCH 3/3] 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();