使用Ninject DI的EasyNETQ System.StackOverflowException

时间:2017-01-18 11:10:53

标签: c# rabbitmq ninject easynetq

我使用的是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。

你有什么想法会发生吗?

提前致谢。

0 个答案:

没有答案