1

HttpContext.Current.Cache.Add()アプリケーションのキャッシュにオブジェクトを挿入するために.net 4.0 を使用しています。.aspx コントロール パネル ページで、キャッシュされたすべてのオブジェクトを、挿入時に指定したそれぞれの有効期限とともに表示したいと考えています。どうやってするの?

4

1 に答える 1

2

確かに、挿入された静的な有効期限を表示したいのですね。その場合は、有効期限を保存してコントロール パネルに渡すだけです。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;
}

ただし、有効期限を「オンザフライ」で取得したい場合は、リフレクションを使用する必要があります。そのためには、質問に対するコメントとして提案された投稿を参照してください。

于 2012-09-06T18:29:46.733 に答える