我迁移 单轨铁路 应用程序 ASP.NET 视1.0.在我原来的应用程序,我写了一定的缓存提供商(分布式供应商使用缓存 缓存).在单轨铁路这个任务是非常容易的,因为该框架采用界面和有 ICacheProvider 看起来是这样的:

public interface ICacheProvider : IProvider, IMRServiceEnabled
{
    void Delete(string key);
    object Get(string key);
    bool HasKey(string key);
    void Store(string key, object data);
}

一个实例,这种接口可在每一个控制器的行动。那么,我所要做的就是实现一个自定义的高速缓存供应商使用缓存,并告诉 单轨铁路使用缓存提供者,而不是默认的一个。它也很容易模型和单元的测试我的控制器。

在ASP.NET 视1.0有的系统。网。抽象会(名看起来很有希望)的定义 HttpContextBase 是这样的:

public abstract class HttpContextBase : IServiceProvider
{
    ... 
    public virtual System.Web.Caching.Cache Cache { get; }
    ...
}

我不明白如何缓酒店这里使用的是一个抽象的高速缓存的供应商。这是密封的 高速缓存 类。看来我不是唯一一个 苦苦挣扎的嘲笑 出类的框架。

我非常新来的ASP.NET 视的框架,并且我必须丢失的东西在这里。我可以写一CustomBaseController使用ICacheProvider界面,我定义和 我所有的控制来自这个基类,但如果有一个更优雅(ASP.NET MVCish)解决方案我会很高兴,实现它。我注意到,HttpContextBase实现了 IServiceProvider.在哪 GetService 方法寻找服务?这可以很容易地嘲笑?

有帮助吗?

解决方案

缓存没有官方的抽象或提供程序,但您可以轻松构建一个:

ASP.NET 4.0 包括 输出缓存提供者抽象 (AFAIK 不是 通用缓存抽象,但仅适用于 输出 缓存)

其他提示

这答案是过时的。看看 ASP.NET 4.0:编写定制产出高速缓存供应商.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top