假设我们有一个接口IService
及其实现类ServiceIpmlementation
。
public interface IService
{
int ThreadId { get; set; }
DateTime CreationDateTime { get; set; }
}
public class ServiceIpmlementation : IService
{
public int ThreadId { get; set; }
public DateTime CreationDateTime { get; set; }
public ServiceIpmlementation()
{
this.ThreadId = Thread.CurrentThread.ManagedThreadId;
this.CreationDateTime = DateTime.Now;
}
}
Ninject 用于IService
在线程范围内将接口绑定到其实现,如下所示:
...
Kernel.Bind<IService>().To<ServiceIpmlementation>().InThreadScope();
...
当我尝试通过Get
方法获取实例时它工作正常:
...
return DI.Kernel.Get<IService>();
...
但是,我还需要为每个线程创建所有实例(用于运行某些作业)。
是否可以通过 Ninject 检索这些实例?
据我所知,在 Ninject 库GetAll<>()
的类中声明的方法ResolutionExtensions
不适用于这种情况。