在新线程中使用Ninject将返回null

时间:2011-08-07 16:06:40

标签: multithreading asp.net-mvc-3 ninject

我在存储库模式的MVC3项目中使用Ninject。到目前为止,Ninject一直运作良好。

我在解决方案中设置了一个新项目,该项目在自己的线程中运行并完成一些后台工作,但是其中一些调用需要我点击我的服务层(调用我的存储库层)。当我尝试设置时:

  [Inject]
  public IMyClass MyClass { get; set; }

在任何其他类中它工作正常,但当我将它放在我的后台线程中时,它总是返回null。我在使用“Parallel.ForEach”时遇到了类似的问题,但当时的解决方案是一个快速的解决方案,所以我从未真正研究解决根本原因。

我尝试在Global.asax.cs中更改此代码:

 Bind<IMyClass>().To<MyClass>();

Bind<IMyClass>().To<MyClass>().InThreadScope(); 

但这似乎没有任何区别。

有什么想法吗?

0 个答案:

没有答案