Asp.net mvc 4 如果对象引用映射为InSingletScope的对象,则不处理映射为InRequestScope的对象

Asp.net mvc 4 如果对象引用映射为InSingletScope的对象,则不处理映射为InRequestScope的对象,asp.net-mvc-4,ninject,ioc-container,ninject.web.mvc,Asp.net Mvc 4,Ninject,Ioc Container,Ninject.web.mvc,我有几个存储库类被映射为InRequestScope,以便在请求的生命周期内缓存它们 这些存储库类被注入一个映射为InSingletonScope的CacheClass 似乎因为Repository类引用了InSingletonScope中的对象,所以Repository类也被视为位于InSingletonScope中,尽管它被映射为InRequestScope 如何强制Ninject在请求结束时处置存储库类,同时将CacheClass保留在缓存中,以便注入在下一个请求期间创建的下一个存储库类

我有几个存储库类被映射为InRequestScope,以便在请求的生命周期内缓存它们

这些存储库类被注入一个映射为InSingletonScope的CacheClass

似乎因为Repository类引用了InSingletonScope中的对象,所以Repository类也被视为位于InSingletonScope中,尽管它被映射为InRequestScope

如何强制Ninject在请求结束时处置存储库类,同时将CacheClass保留在缓存中,以便注入在下一个请求期间创建的下一个存储库类


这似乎应该很简单,但我无法理解。

您能否提供一些代码来证明这样的假设:
因为存储库类引用了InSingletonScope中的对象,所以存储库类也被认为是InSingletonScope中的对象。
?这就是Ninject应该做的。所以要么你做错了什么,要么你发现了一个bug。但是如果没有任何代码sniüets,就不可能判断您的情况是哪种情况。我今天做了更多的挖掘,似乎问题与上面描述的不同,但是存储库类似乎在请求之间重复使用。由于将CacheClass设置为SingletonScope消除了这一奇怪之处,所以我采用了上述方法。我会做更多的工作,然后回到这个问题上来。谢谢。好吧,问题似乎根本不在于存储库类,而在于请求的并发性导致了数据库的竞争条件,这似乎是对存储库的重用。我应该删除这个问题吗?至少我已经确认Ninject在我的应用程序lol中正常工作