asp.net-mvc – 如何使用ASP.NET MVC实现自定义缓存提供程序

栏目: ASP.NET · 发布时间: 6年前

内容简介:每个控制器动作都可以使用此接口的实例.所以,我只需要实现一个使用memcached和tell的自定义缓存提供程序MonoRail使用我的缓存提供程序,而不是默认缓存.对我的控制器进行模拟和单元测试也很容易.在ASP.NET MVC 1.0中,有一个定义
我正在将 MonoRail 应用程序迁移到 ASP.NET MVC 1.0 .在我的原始应用程序中,我写了一个自定义缓存提供程序(使用 memcached 的分布式缓存提供程序).在MonoRail中,这个任务非常简单,因为框架使用了界面,并且有这样的 ICacheProvider
public interface ICacheProvider : IProvider, IMRServiceEnabled
{
    void Delete(string key);
    object Get(string key);
    bool HasKey(string key);
    void Store(string key, object data);
}

每个控制器动作都可以使用此接口的实例.所以,我只需要实现一个使用 memcached 和tell的自定义缓存提供程序

MonoRail使用我的缓存提供程序,而不是默认缓存.对我的控制器进行模拟和单元测试也很容易.

在ASP.NET MVC 1.0中,有一个定义 HttpContextBase 的System.Web.Abstractions程序集(名称看起来很有前途):

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

我不明白这里使用的Cache属性是缓存提供程序的抽象.这是传统密封的 Cache 课程.看来,我不是 struggling to mock 在框架中唯一的课.

我对ASP.NET MVC框架非常新,我必须在这里遗漏一些东西.我可以编写一个CustomBaseController,它使用我定义的ICacheProvider接口

所有的控制器都是从这个基类派生的,但是如果有一个更优雅的(ASP.NET MVCish)解决方案,我很乐意实现它.我注意到HttpContextBase实现了 IServiceProvider . GetService 方法将在哪里寻找服务?这可以容易地嘲笑吗?


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

自制搜索引擎

自制搜索引擎

[日]山田浩之、[日]末永匡 / 胡屹 / 人民邮电出版社 / 2016-1 / 39.00元

《自制搜索引擎》聚焦于Google和Yahoo!等Web搜索服务幕后的搜索引擎系统,首先讲解了搜索引擎的基础知识和原理,接着以现实中的开源搜索引擎Senna/Groonga为示例,使用该引擎的源代码引导读者亲自体验搜索引擎的开发过程。这部分讲解涉及了倒排索引的制作和压缩、检索的处理流程以及搜索引擎的优化等内容。又简单介绍了一些更加专业的搜索引擎的知识和要点,为读者今后进一步学习打下了基础。本书适合......一起来看看 《自制搜索引擎》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换