我正在开发一个包含4个项目的解决方案,并且我想分享相同的依赖注入模式。
项目
项目A :具有使用DI的视图和控制器的MVC项目
项目B :带有使用DI的控制器的WebAPI项目
项目C :缓存项目,允许我在缓存内存储和检索数据的图层
项目D :服务项目,在数据库(和缓存)中存储和检索数据的服务层。
项目A 和项目B 指的是项目D 。 (例如,他们向服务层询问数据,并向他们提供从数据库或缓存中检索的数据)。 ( *项目A 和项目B 在每个控制器构造函数中注入 IServiceManager )。
项目D 是指项目C ,因为有时它需要来自缓存内存的数据,当它更新数据库上的记录时,它会清除缓存。 (它在构造函数中注入了ICacheManager )。
问题
项目A 和项目B 使用相同的方式检索和存储数据:他们在每个控制器的构造函数中注入了 IServiceManager ,并且他们调用了ServiceManager方法。
但是当项目B 在数据库上写一条记录(使用应该在db上写入的ServiceManager并清除缓存),然后项目A 读取数据(使用ServiceManager),项目A 继续"参见"旧数据存储在缓存中。
期望
我希望DI为项目A 和项目B 提供相同的对象(相同的服务和相同的缓存管理器),以便他们可以处理相同的数据。 / p>
有可能吗?我怎样才能集中和#34; A 和 B 使用的DI模式与提供相同数据的方式相同?