动机:我正在尝试在单例范围内创建一个类,并将其定义为单例:
kernel.Bind<IClass>().To<Class>().InSingletonScope();
想法是我需要在mvc和webapi之间分享这个。
在MVC中,类获得单例。所以这在MVC项目中工作正常。
问题:我已经为WebAPI实现了自己的IDependencyResolver。它使用相同的内核设置。
所以我理解我们也可以让Class在webapi调用中成为单例。但我可以为webapi和mvc共同使用这个单例。对于mvc或webpi调用都会保持get。
可能我在这里缺少一些概念。请解释我如何实现这一目标。或者这是不可能的。 是的,可能设计很奇怪而且不对,但如果我出于某种原因必须这样做。
答案 0 :(得分:1)
同时拥有MVC和Web Api意味着您有2个独立的应用程序,这些应用程序具有各自独立的内存空间,进程等。
我想你可以尝试使用AppDomain,但你可能会遇到问题。
你可以尝试使用session,但是web api是REST而不应该有,但是如果你真的需要相同的实例,你可以试着稍微改变规则。