Skip to content

Commit 2ca04a6

Browse files
committed
feat: 增加 SetDefaultSlidingExpiration 扩展方法精简代码
1 parent d3980ae commit 2ca04a6

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

src/BootstrapBlazor/Extensions/ICacheEntryExtensions.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,17 @@ public static class ICacheEntryExtensions
4040
}
4141

4242
private static PropertyInfo? _lastAccessedProperty = null;
43+
44+
/// <summary>
45+
/// Sets default sliding expiration if no expiration is configured
46+
/// </summary>
47+
internal static void SetDefaultSlidingExpiration(this ICacheEntry entry, TimeSpan offset)
48+
{
49+
if (entry.SlidingExpiration == null && entry.AbsoluteExpiration == null
50+
&& entry.AbsoluteExpirationRelativeToNow == null
51+
&& entry.Priority != CacheItemPriority.NeverRemove)
52+
{
53+
entry.SetSlidingExpiration(offset);
54+
}
55+
}
4356
}

src/BootstrapBlazor/Services/CacheManager.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,7 @@ public TItem GetOrCreate<TItem>(object key, Func<ICacheEntry, TItem> factory) =>
5555
{
5656
var item = factory(entry);
5757

58-
if (entry.SlidingExpiration == null && entry.AbsoluteExpiration == null
59-
&& entry.AbsoluteExpirationRelativeToNow == null
60-
&& entry.Priority != CacheItemPriority.NeverRemove)
61-
{
62-
entry.SetSlidingExpiration(Options.CacheManagerOptions.SlidingExpiration);
63-
}
58+
entry.SetDefaultSlidingExpiration(Options.CacheManagerOptions.SlidingExpiration);
6459
return item;
6560
})!;
6661

@@ -71,12 +66,7 @@ public Task<TItem> GetOrCreateAsync<TItem>(object key, Func<ICacheEntry, Task<TI
7166
{
7267
var item = await factory(entry);
7368

74-
if (entry.SlidingExpiration == null && entry.AbsoluteExpiration == null
75-
&& entry.AbsoluteExpirationRelativeToNow == null
76-
&& entry.Priority != CacheItemPriority.NeverRemove)
77-
{
78-
entry.SetSlidingExpiration(Options.CacheManagerOptions.SlidingExpiration);
79-
}
69+
entry.SetDefaultSlidingExpiration(Options.CacheManagerOptions.SlidingExpiration);
8070
return item;
8171
})!;
8272

0 commit comments

Comments
 (0)