インターフェイス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
この状況には適用できません。