3
我正在創建一個門戶網站,許多網站將運行相同的MVC應用程序。我有存儲在HttpRuntime.Cache中的網站列表。通過靜態方法訪問緩存是否錯誤?我是否應該通過查看數據?在ASP.Net MVC中,是使用靜態方法在視圖上查找緩存對象的不良做法?
例如,這是錯的觀點:
凡SiteHelper代碼:
public class SiteHelper {
private static object @lock = new object();
private const string siteKey = "FelixSites";
public static Site CurrentSite {
get {
var context = HttpContext.Current.Wrap();
var sites = context.Cache[siteKey] as Site[];
if (sites == null) {
lock (@lock) {
if (sites == null) {
sites = SiteService.GetSites();
context.Cache[siteKey] = sites;
}
}
}
return sites.Single(s => s.Domain == context.Request.UrlReferrer.AbsoluteUri);
}
}
}