我在存储库模式的MVC3项目中使用Ninject。到目前为止,Ninject一直运作良好。
我在解决方案中设置了一个新项目,该项目在自己的线程中运行并完成一些后台工作,但是其中一些调用需要我点击我的服务层(调用我的存储库层)。当我尝试设置时:
[Inject]
public IMyClass MyClass { get; set; }
在任何其他类中它工作正常,但当我将它放在我的后台线程中时,它总是返回null。我在使用“Parallel.ForEach”时遇到了类似的问题,但当时的解决方案是一个快速的解决方案,所以我从未真正研究解决根本原因。
我尝试在Global.asax.cs中更改此代码:
Bind<IMyClass>().To<MyClass>();
到
Bind<IMyClass>().To<MyClass>().InThreadScope();
但这似乎没有任何区别。
有什么想法吗?