2011-02-27 97 views

回答

4

一旦你有扩展方法,它是一个简单的使用它的事情(不要忘记把你定义的GetOrStore方法的静态类放入作用域,方法是向包含它的命名空间添加using指令,否则你不会能够看到GetOrStore<T>扩展方法):

IEnumerable<string> addresses = HttpRuntime 
    .Cache 
    .GetOrStore<IEnumerable<string>>(
     "addresses", 
     () => repository.GetAllAddresses().ToArray() 
); 

注意事项:

  • 我们使用的“地址”作为缓存键,因此结果将此项下储存。
  • 我们在IQueryable<string>上调用.ToArray(),以便热切地获取地址并将结果存储到缓存中而不是查询。