2014-03-07 51 views
1

我正在开发一个相当大的项目。有两种情况我需要处理

1. API调用的某些值,如API调用的BaseURL,从DB中获取一次,并在解决方案的多个位置(在不同的类中)重新分配。

2.某些值使用API​​调用,有时可能会更改,所以我需要有时调用API调用以刷新这些值,然后重新调用。

我现在的情况1的解决方案是create a staic constructor,它从DB中取一次值并重用。这是一个好的解决方案吗?这种情况下的最佳做法是什么?我该如何处理案例2?这种“缓存”的最佳做法是什么?在大型项目中缓存值的最佳做法

回答

0

创建一个名为CachedDataAccessor的静态类并在其中实现以下行为。

  1. GetCachedData(),将返回API密钥,中网址的情况下,存储第一时间就从DB
  2. RefreshCachedData()获取的数据,以刷新过期的值,并从数据库获取它们的副本。 此后,您还可以实施CacheSize以允许配置缓存的大小。

每一次你需要的数据时,从CacheAccessor

0

把它拿来看一看the classes in system.runtime.cahching

对于这两种情况下,你可以使用的MemoryCache对象。

在第一种情况下,您可以将CacheItemPolicy的SlidingExpiration设置为一个小时左右,所以当它被命中时它不会从缓存中删除。

在第二种情况下,如果您想缓存数据一段时间,您可以将AbsoluteExpiration设置为该时间。

如果您知道何时需要清除缓存的条件,则可以创建一个更改监视器,用于在缓存中的数据无效时清除缓存项。

相关问题