Ninject:我可以在许多 .NET API 调用中保持绑定吗?

Ninject: can I persist a binding across many .NET API calls?

我的网站上有以下 ninject rabbitMQ 绑定,它使用 .NET API 2.

当我访问网站上的许多页面时,这种绑定只会在第一次发生。这是我期望的,因为 InSingletonScope()。

当我上网时 API 绑定发生在 每个 调用。有没有办法在 API 个调用中保持连接?

        Bind<IConnection>()
            .ToMethod(ctx =>
                      {
                          var connectionString = WebConfigurationManager.ConnectionStrings["RabbitMQ"].ConnectionString;
                          var factory = new ConnectionFactory
                                        {
                                            Uri = connectionString,
                                            RequestedHeartbeat = 15
                                        };
                          var connection = factory.CreateConnection();

                          return connection;
                      })
            .InSingletonScope();

解决方法是安装 nuget 包 Ninject.Web.WebApi (https://www.nuget.org/packages/Ninject.Web.WebApi)。一旦我这样做了 ninject 正确地重新使用了我的 InSingletonScope() 绑定。