我找到了这篇文章Replace Ninject with Simple Injector
但尚未找到跟踪迁移的解决方案。 有了Ninject:
public class ServiceClass : IServiceClass
...
IKernel kernel
...
this.kernel.Bind<IServiceClass>().ToMethod(context => this);
我尝试将此构造与Simple Injector一起使用:
public class ServiceClass : IServiceClass
...
Container container
...
this.container = container;
this.container.Register<IServiceClass>(() => container.GetInstance<ServiceClass >());
它等于Ninject 1吗?
Ninject的第二部分是:
public void BindSomeCallback(DelegateNumberOne delegateNumberOne)
{
this.kernel.Rebind<DelegateNumberOne>().ToConstant(delegateNumberOne);
}
为:
public void BindSomeCallback(DelegateNumberOne delegateNumberOne)
{
this.container.Register<DelegateNumberOne, delegateNumberOne>();
}
答案 0 :(得分:1)
它等于Ninject 1吗?
不。这是:
this.container.Register<IServiceClass>(() => this);
但是因为你实际上正在注册一个单例,你可以更好地编写它如下:
this.container.RegisterSingle<IServiceClass>(this);
Ninject的第二部分是:
再次在这里,您希望将委托注册为单身:
this.container.RegisterSingle<DelegateNumberOne>(delegateNumberOne);