快速业务通道

使用Project Velocity增强ASP.NET MVC应用程序

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
函数)

C#

// Container Names
private const string  ReferenceDataCacheContainer = "Reference";
private const string  ActivityCacheContainer = "Activity";
private const string  SearchQueryCacheContainer = "ActivitySearch";

private readonly  ICachingProvider cacheProvider;

private readonly IActivitiesRepository  activitiesRepository;

public CachedActivitiesRepository() :
    this (new VelocityProvider(), new ActivitiesRepository())
{
}

public  CachedActivitiesRepository(ICachingProvider cacheProvider, IActivitiesRepository  activitiesRepository)
{
    this.cacheProvider = cacheProvider;
     this.activitiesRepository = activitiesRepository;
}

注意:CachedActivitiesRepository 包含您在任务 1 中创建的已命名缓存的名称。

此外,它 还有一个缓存提供程序和活动存储库。首先定义存储库装饰器将使用的缓存实例,其次在数据未存储在缓 存中时在其中获取数据的实际存储库。

在调用默认构造函数时,它将创建 VelocityProvider 和 ActivitiesRepository 的实例。随后,调用另外一个构造函数,使用已经创建的实例作为参数。

5.实现 RetrieveStates 方法。为此,复制 CachedActivitiesRepository.cs 类中的以下代码:

(代码片段 – 增强 PlanMyNight MVC 应用程序– CachedActivitiesRepository RetrieveStates)

C#

public IEnumerable<string> RetrieveStates()
{
    var cacheKey = "states";

    // retrieve states from  Cache
    IEnumerable<string> data = this.cacheProvider.Get (ReferenceDataCacheContainer, cacheKey) as IEnumerable<string>;
    if  (data != null)
    {
        return data;
    }

    // retrieve from Repository
    data =  this.activitiesRepository.RetrieveStates();
    this.cacheProvider.Add (ReferenceDataCacheContainer, cacheKey, data, TimeSpan.FromMinutes(60));
     return data;
}

注意:请注意,该方法首先在“Reference”已命名缓 存中搜索状态列表,若未找到,则从 ActivityRepository 检索,并将其存储在缓存中,以备未来请求之 用。

所有实现的方法都将重复此行为。

6.实现 Retrieve 方法。为此,复制 CachedActivitiesRepository.cs 类中的以下代码:

(代码片段 – 增强 PlanMyNight MVC 应用程序– CachedActivitiesRepository RetrieveActivity)

C#

public  Activity Retrieve (string id)
{
    // retrieve from Cache; the  Activity''s id is used as key
    Activity data = this.cacheProvider.Get (ActivityCacheContainer, id) as Activity;
    if (data != null)
     {
        return data;
    }

    // retrieve from  Repository
    data = this.activitiesRepository.Retrieve (id);
     this.cacheProvider.Add(ActivityCacheContainer, id, data, TimeSpan.FromMinutes(15));
    return data;
}

7.实现 RetrieveActivityTypes 方法。为此,复制 CachedActivitiesRepository.cs 类中的以下代码:

(代码片段 – 增强 PlanMyNight MVC 应用程序– CachedActivitiesRepository RetrieveActivityTypes)

C#

public IEnumerable<ActivityType> R

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号