循环引用和DI
本文关键字:DI 引用 循环 | 更新日期: 2023-09-27 17:57:53
我有一个名为Service1的wcf项目,它有一个接口IActions
public interface IActions
{
int DoSomething(int param);
}
public class Service1 : IService1
{
private IActions actions;
public Service1(IActions actions)
{
this.actions = actions;
}
public MyAction(int p)
{
return this.actions.DoSomething(p);
}
}
然后我有另一个实现IActions接口的项目,所以它引用了Service1
public class SomeClass : IActions
{
public int DoSomething(int param)
{
return param*param;
}
}
现在我想用ninject实现DI,为此我正在绑定
public class NinjectBindings : NinjectModule
{
public override void Load()
{
Bind<IActions>().To<SomeClass>();
Bind<ServiceHost>().To<NinjectServiceHost>();
}
}
这是不可能的,因为它引入了循环引用。我做错了什么?我知道我应该有设计缺陷,但我很感激你能给我看。
您的示例中没有类的循环引用。您只有循环程序集引用。引入一些包含它们之间共享接口的合同程序集,您就可以了。