У меня есть интерфейс:
public interface IService
{
void DoStuff(int parm1, string parm2, Guid gimmeABreakItsAnExampleK);
}
Я хотел бы настроить привязки Ninject (v3), чтобы у меня мог быть метод shuffle "dispatcher", вызывающий несколько экземпляров 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>();
Возможно ли это? Если да, то что я делаю неправильно? Может ли ниндзя избежать этой циклической гибели зависимости?