如何实现一个自定义的高速缓存者ASP.NET 视
-
22-08-2019 - |
题
我迁移 单轨铁路 应用程序 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 方法寻找服务?这可以很容易地嘲笑?
解决方案
缓存没有官方的抽象或提供程序,但您可以轻松构建一个:
- http://weblogs.asp.net/zowens/archive/2008/08/04/cache-abstraction.aspx
- http://memcachedproviders.codeplex.com/SourceControl/changeset/view/15983#58762
ASP.NET 4.0 包括 输出缓存提供者抽象 (AFAIK 不是 通用缓存抽象,但仅适用于 输出 缓存)
其他提示
这答案是过时的。看看 ASP.NET 4.0:编写定制产出高速缓存供应商.
不隶属于 StackOverflow