如何在C#中实现嵌套方法的缓存

时间:2015-04-30 10:55:01

标签: c# asp.net-mvc-4 caching outputcache

假设我有以下功能

 public JsonResult FunctionA(int a, int b)
    {
        int c = 1;// Dynamic Value
        return Json(FunctionB(a, b, c));
    }

    [OutputCache(Duration = 3600, VaryByParam = "*")]
    public string FunctionB(int a, int b, int c)
    {
        // Some calculation
        return "result";
    }

输出缓存是否适用于在 FunctionA 内调用的 FunctionB

我不能在场景中使用任何其他第三方库。如果我的方法不正确,请纠正我。

由于

1 个答案:

答案 0 :(得分:1)

简短的回答,没有。 OutputCache属性是MVC管道的一部分。它使Web服务器能够将操作方法​​的输出存储在内存中,因此,如果从控制器上的方法返回视图,则视图页面将被缓存并提供,直到缓存版本到期为止。

如果你想缓存你的应用程序内部的操作,你将不得不推出自己的缓存或使用第三方组件(我知道你对第三方库的限制,但缓存很容易出错了。

有一些工具和指南可以帮助您实现这一目标。