簡體   English   中英

共享 asp.net object 為 static 或緩存

[英]shared asp.net object as static or cache

在 asp.net 中存儲共享 object 的最佳方法是什么? 對於每個請求,每個請求都會多次調用它。 我一直在使用這兩種方法,但我想知道是否有更好的方法。 我每小時刷新一次這個 object。

public static List<ResourceObject> SharedResources = new List<ResourceObject>()

//OR

public static List<ResourceObject> SharedResources
{
    get
    {
        List<ResourceObject> _sharedResources = HttpContext.Current.Cache["RedirectRoutes"] as List<ResourceObject>;
        if (_sharedResources == null)
        {
            _sharedResources = LoadNewSharedResource();
            HttpContext.Current.Cache["RedirectRoutes"] = _sharedResources;
        }

        return _redirectRoutes;
    }
    set
    {
        HttpContext.Current.Cache["RedirectRoutes"] = value;
    }
}

如果您的 object 經常更改(即您提到的每小時一次),那么您最好使用緩存,因為它將能夠為您處理刷新(假設您在將值添加到緩存時傳遞了正確的參數) . 如果您使用 static 值,則不會每小時自動清除一次,因此您需要自己實施檢查。

如果這看起來是一個需要跨請求持續存在的 object,那么這是實現它的完美且合理的方法。 如果在一次調用中多次訪問緩存版本,您可能希望將緩存版本放在局部變量中,以節省每次從緩存中檢索它的時間。

像您關心的那樣緩存它是否存在特定問題?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM