Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 同一解决方案中Web API和MVC项目之间的依赖关系注入_C#_Asp.net Mvc_Caching_Asp.net Web Api_Dependency Injection - Fatal编程技术网

C# 同一解决方案中Web API和MVC项目之间的依赖关系注入

C# 同一解决方案中Web API和MVC项目之间的依赖关系注入,c#,asp.net-mvc,caching,asp.net-web-api,dependency-injection,C#,Asp.net Mvc,Caching,Asp.net Web Api,Dependency Injection,我正在开发一个包含4个项目的解决方案,我希望共享相同的依赖注入模式 项目 项目A:具有使用DI的视图和控制器的MVC项目。 项目B:带有使用DI的控制器的WebAPI项目。 项目C:缓存项目,允许我在缓存内存中存储和检索数据的层。 项目D:服务项目,在数据库(和缓存)中存储和检索数据的服务层 项目A和项目B请参考项目D。(例如,他们向服务层请求数据,服务层向他们提供从数据库或缓存检索到的数据)。(*项目A和项目B将IServiceManager注入每个控制器构造函数*) 项目D指的是项目C,因为

我正在开发一个包含4个项目的解决方案,我希望共享相同的依赖注入模式

项目
项目A:具有使用DI的视图和控制器的MVC项目。
项目B:带有使用DI的控制器的WebAPI项目。
项目C:缓存项目,允许我在缓存内存中存储和检索数据的层。
项目D:服务项目,在数据库(和缓存)中存储和检索数据的服务层

项目A项目B请参考项目D。(例如,他们向服务层请求数据,服务层向他们提供从数据库或缓存检索到的数据)。(*项目A项目B将IServiceManager注入每个控制器构造函数*)

项目D指的是项目C,因为有时它需要缓存中的数据,当它更新数据库中的记录时,它会清除缓存。(它在构造函数中注入了一个ICacheManager)

问题
项目A项目B使用相同的方法检索和存储数据:它们在每个控制器的构造函数中注入了一个IServiceManager,并调用ServiceManager方法。 但当project B在数据库上写入记录(使用应在db上写入并清除缓存的ServiceManager),然后project a读取数据(使用ServiceManager),project a继续“查看”缓存中存储的旧数据

期望值
我希望DI为项目A项目B提供相同的对象(相同的服务和相同的缓存管理器),以便它们可以处理相同的数据


可能吗?我如何“集中”一个由aB使用的DI模式,以提供相同数据的相同方式?

您有使用类似的东西的余地吗?我不喜欢使用Redis或类似的,但如果没有其他选择,我会继续使用。@Teo Hi。你找到这个问题的答案了吗?我有类似的东西