我使用的是Ninject版本=" 3.2.2.0"以及EasyNetQ 0.63.5.454的最新版本。 我创建了简单的项目。
static class Program
{
static void Main()
{
var kernel = new StandardKernel(new NinjectSettings(){LoadExtensions = true});
kernel.Load<MyModule>();
kernel.RegisterAsEasyNetQContainerFactory();
var b = kernel.Get<IBus>();
}
}
public class MyModule : NinjectModule
{
public override void Load()
{
Kernel.Bind<IBus>().ToMethod(t => RabbitHutch.CreateBus("host=localhost;publisherConfirms=true")).InSingletonScope();
}
}
但是在行var b = kernel.Get<IBus>();
中我收到了System.StackOverflowException。
在调试模式中,我看到Kernel.Bind()。ToMethod()的递归调用虽然它有Singleton Scope。
你有什么想法会发生吗?
提前致谢。