获取缓存的到期时间

时间:2012-04-11 05:40:43

标签: asp.net-mvc-3 caching

是否可以获取特定缓存的到期时间?我希望能找到这样的东西:

HttpRuntime.Cache(key).ExpireTime

1 个答案:

答案 0 :(得分:2)

只是为了方便人们点击这篇文章,这非常有效:

    private DateTime GetCacheUtcExpiryDateTime(string cacheKey)
    {
        object cacheEntry = Cache.GetType().GetMethod("Get", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(Cache, new object[] { cacheKey, 1 });
        PropertyInfo utcExpiresProperty = cacheEntry.GetType().GetProperty("UtcExpires", BindingFlags.NonPublic | BindingFlags.Instance);
        DateTime utcExpiresValue = (DateTime)utcExpiresProperty.GetValue(cacheEntry, null);

        return utcExpiresValue;
    }

此处找到原始答案How can I get the expiry datetime of an HttpRuntime.Cache object?

请注意,这使用了反射。虽然工作得很好,但却以DD/MM/YYYY HH:MM:SS格式提供了一个漂亮的UTC日期。