0
我不確定處理此問題的最佳方式,但這裏是我的場景。在.ashx處理程序中緩存對象
比方說,我有一個ashx處理程序,它將一些數據提供給來自客戶端的ajax請求。一些簡單的像:
public class Handler : IHttpHandler
{
private List<MyObject> data;
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
data = GetData();
string result;
switch (context.Request.QueryString["requestType"])
{
case "case":
result = Foo.Bar(data).GetJSON();
break;
// .. several more data conversitions/comparisions
}
context.Response.Write(result);
}
public class MyObject
{
public int Id { get; set; }
public string Data { get; set; }
}
}
我怎麼會緩存MyObject來的名單,因此每一個請求到服務取得時間不重建?假設MyObject的列表獲得了數千個結果,並且我希望將它緩存大約1分鐘。我可以使用context.Cache嗎?
基本上;我不想緩存處理程序的輸出。只是一個數據駐留在其中的對象。
編輯: 我要找的線沿線的東西:
data = (List<MyObject>) context.Cache["data"];
if (data == null || !data.Any())
{
data = GetData();
context.Cache.Insert("data", data, null, DateTime.Now.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration);
}