[英]ASP.NET Web API action caching
我試圖在ApiControler
緩存操作的結果,由於某種原因,我沒有看到緩存的內容。 我不完全了解MVC緩存的工作原理,但是我假設是否已緩存了動作響應,而不應該一直調用它,但是如果可用,它應該只輸出緩存。
行動:
[HttpGet]
public HttpResponseMessage NetworkStatusSummary()
{
// getting networkStatuses
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, networkStatuses);
response.Headers.CacheControl = new CacheControlHeaderValue {MaxAge = new TimeSpan(0, 10, 0), Public = true};
return response;
}
我在這里做錯了什么?
好的,內置Web API似乎沒什么花哨的。 因此想出了:
private IList<NetworkStatus> NetworkStatuses
{
get
{
IList<NetworkStatus> networkStatuses;
Cache cache = HttpContext.Current.Cache;
if (cache[NETWORK_STATUSES_CACHE_KEY] == null)
{
networkStatuses = m_networkOwnerService.GetNetworkStatuses();
cache.Add(NETWORK_STATUSES_CACHE_KEY, networkStatuses, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 5, 0), CacheItemPriority.Default, null);
}
else
{
networkStatuses = (IList<NetworkStatus>) cache[NETWORK_STATUSES_CACHE_KEY];
}
return networkStatuses;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.