From 5e63e44a423a31e0788dc78e2ce7413bfccdf7e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=A4=B4?= Date: Sun, 2 Feb 2025 21:59:10 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BF=AE=E6=AD=A3=E5=86=85=E5=AD=98?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E6=9C=89=E6=95=88=E6=9C=9F=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E8=B6=85=E8=BF=8725=E5=A4=A9=E7=9A=84BUG=E3=80=82=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0=E6=98=AF=E5=86=85=E5=AD=98=E7=BC=93=E5=AD=98=E5=86=85?= =?UTF-8?q?=E9=83=A8=E8=AE=A1=E7=AE=97=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=B9=98=E6=B3=95=E8=BF=90=E7=AE=97=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=80=83=E8=99=91Int32=E6=BA=A2=E5=87=BA=E3=80=82clos?= =?UTF-8?q?e:=20https://github.com/NewLifeX/X/issues/153?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NewLife.Core/Caching/MemoryCache.cs | 2 +- XUnitTest.Core/Caching/MemoryCacheTests.cs | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/NewLife.Core/Caching/MemoryCache.cs b/NewLife.Core/Caching/MemoryCache.cs index 5c47eb65b..c6fb228d3 100644 --- a/NewLife.Core/Caching/MemoryCache.cs +++ b/NewLife.Core/Caching/MemoryCache.cs @@ -511,7 +511,7 @@ public void Set(T value, Int32 expire) if (expire <= 0) ExpiredTime = Int64.MaxValue; else - ExpiredTime = now + expire * 1000; + ExpiredTime = now + expire * 1000L; } /// 设置数值和过期时间 diff --git a/XUnitTest.Core/Caching/MemoryCacheTests.cs b/XUnitTest.Core/Caching/MemoryCacheTests.cs index 59e29f289..f7216d4e9 100644 --- a/XUnitTest.Core/Caching/MemoryCacheTests.cs +++ b/XUnitTest.Core/Caching/MemoryCacheTests.cs @@ -350,4 +350,25 @@ public void GetQueue() var ex = Assert.Throws(() => mc.GetQueue("queue")); Assert.StartsWith("Unable to convert the value of [queue]", ex.Message); } + + [Theory] + [InlineData(3)] + [InlineData(24)] + [InlineData(25)] + [InlineData(3650)] + public void LongExpireSet(Int32 days) + { + var mc = new MemoryCache(); + + mc.Set("name", "Stone", TimeSpan.FromDays(days)); + + var rs = mc.ContainsKey("name"); + Assert.True(rs); + + var val = mc.Get("name"); + Assert.Equal("Stone", val); + + var exp = mc.GetExpire("name"); + Assert.Equal(days, exp.Days); + } } \ No newline at end of file