我已成功开始使用 Azure AppFabric 缓存服务,但我不确定创建 DataCacheFactory 对象的最佳实践方式是什么。现在我正在为每次调用缓存创建它,但显然这不是理想的方法......
一些建议呼吁单身人士。但我不确定我是否理解这将如何实现(不是实际的 Singleton 类,而是如何将它们结合在一起)。
今天我有一个使用 Ninject 为我创建的 CacheProvider 类,我可以在其中执行 Get/Put/Remove 操作。对于这些方法中的每一个,我都创建了 DataCacheFactory 对象,然后调用 .GetDefaultCache() 来获取 DataCache 对象,在这里我分别调用 Put/Get/Remove。我在一个看起来像这样的方法中做到这一点:
private T Cache<T>(Func<DataCache, T> cacheAction)
{
using (DataCacheFactory dataCacheFactory = new DataCacheFactory())
{
DataCache dataCache = dataCacheFactory.GetDefaultCache();
return cacheAction(dataCache);
}
}
我现在很确定这不是那么聪明的想法,我应该通过一个单例获取 DataCache 对象,其中 DataCacheFactory 对象只创建一次。但是该对象将如何在请求之间生存?以及如何在 Azure 上使用 > 1 个实例?
希望所有这些都是有道理的,并且比我有更多经验(3 小时)的人可以帮助我。