我有一个名为Service1的wcf项目,它有一个Interface 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>();
}
}
这是不可能的,因为它引入了循环引用。 我究竟做错了什么? 我知道我应该有设计缺陷,但我很感激你可以向我展示。
答案 0 :(得分:2)
您的示例中没有类的循环引用。你只需要循环汇编参考。介绍一些包含它们之间共享的接口的合同程序集,你会没事的。