相关疑难解决方法(0)

使用标志交换存储库

我有一个IRepository <T>接口,有许多T和几个实现(按需DB,Web服务等).我使用AutoFac为许多T注册IRepository,具体取决于我想要的每个T的存储库类型.

我还有一个基于.NET缓存的实现,它在缓存中查找T,然后调用"真正的"IRepository.Find来解决缓存未命中问题.它构造如下:

new CachingRepository(realRepository, cacheImplementation);
Run Code Online (Sandbox Code Playgroud)

我想使用配置标志来决定AutoFac是否提供基于缓存的IRepository或"真实的东西".似乎'realRepository'来自要求AutoFac解析IRepository <T>但是当客户要求解析同一个接口时会得到什么?如果设置了标志,我希望它们获取CachingRepository.

我无法理解如何实现这种基于标志的解决方案.有任何想法吗?

domain-driven-design inversion-of-control autofac

2
推荐指数
1
解决办法
508
查看次数