私はインターフェースを持っています:
public interface IService
{
void DoStuff(int parm1, string parm2, Guid gimmeABreakItsAnExampleK);
}
次のように、「ディスパッチャー」シャッフルメソッドがの複数のインスタンスを呼び出すことができるように、Ninject(v3)バインディングを構成したいと思いますIService
。
public sealed class DispatcherService : IService
{
private IEnumerable<IService> _children;
public DispatcherService(IEnumerable<IService> children)
{
this._children = children.ToList();
}
public void DoStuff(int parm1, string parm2, Guid gimmeABreakItsAnExampleK)
{
foreach(var child in this._children)
{
child.DoStuff(parm1, parm2, gimmeABreakItsAnExampleK);
}
}
}
ただし、このように見える私のバインディングは、実行時に例外をスローして、循環依存を示します。
this.Bind<IService>().To<DispatcherService>();
this.Bind<IService>().To<SomeOtherService>()
.WhenInjectedExactlyInto<DispatcherService>();
this.Bind<IService>().To<YetAnotherService>()
.WhenInjectedExactlyInto<DispatcherService>();
これは可能ですか?もしそうなら、私は何を間違っていますか?忍者はこの周期的な依存関係の運命から逃れることができますか?