C# Получить дату истечения срока действия кэша из HttpContext.Current.Cache

Я использую.net 4.0 HttpContext.Current.Cache.Add() вставлять объекты в кеш моего приложения. На странице панели управления.aspx я хотел бы отобразить все кэшированные объекты с их соответствующей датой истечения срока, которую я указал, когда они были вставлены. Как это сделать?

1 ответ

Если я правильно вас понял, вы хотите отобразить статическую дату истечения срока действия, которая была вставлена, верно? Если это так, все, что вам нужно, это сохранить дату истечения срока действия и передать ее на панель управления. Если вы используете asp.net mvc, вы можете отправить эту дату как свойство ViewModel. Позвольте привести пример того, о чем я говорю:

public DateTime InsertItemOnCache(object item, DateTime expiration)
{

    DateTime dateExpiration;
    //Here you construct your cache key. 
    //You can use your asp.net sessionID if you want to your cache 
    //to be for a single user.
    var key = string.Format("{0}--{1}", "Test", "NewKey");

    if (expiration != null)
    {
        dateExpiration = expiration;
    }
    else
    {
        //Set your default time
        dateExpiration = DateTime.Now.AddHours(4);
    }
    //I recommend using Insert over Add, since add will return null if there are
    //2 objects with the same key
    HttpContext.Current.Cache.Insert(key, item, null, dateExpiration, Cache.NoSlidingExpiration);

    return dateExpiration;
}

Однако, если вы хотите, чтобы срок годности истек "на лету", вам придется использовать рефлексию. Для этого обратитесь к посту, который был предложен в качестве комментария на ваш вопрос.

Другие вопросы по тегам