Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Ninject:我可以跨多个.NETAPI调用持久化绑定吗?_C#_Api_Rabbitmq_Ninject - Fatal编程技术网

C# Ninject:我可以跨多个.NETAPI调用持久化绑定吗?

C# Ninject:我可以跨多个.NETAPI调用持久化绑定吗?,c#,api,rabbitmq,ninject,C#,Api,Rabbitmq,Ninject,在我使用.NETAPI2的网站上,我有以下针对rabbitMQ的ninject绑定 当我访问网站上的许多页面时,这种绑定只在第一次发生。这就是我所期望的,因为InSingletonScope() 当我点击web API时,每次调用都会发生绑定。有没有办法在API调用之间保持连接 Bind<IConnection>() .ToMethod(ctx => {

在我使用.NETAPI2的网站上,我有以下针对rabbitMQ的ninject绑定

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

当我点击web 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();
Bind()
.ToMethod(ctx=>
{
var connectionString=WebConfiguration Manager.connectionString[“RabbitMQ”]。connectionString;
var工厂=新连接工厂
{
Uri=连接字符串,
RequestedHeartbeat=15
};
var connection=factory.CreateConnection();
回路连接;
})
.InSingletonScope();

修复程序是安装nuget软件包Ninject.Web.WebApi()。一旦我正确地执行了该操作,ninject就重新使用了InSingletonScope()绑定。

我打赌每个请求都有一个额外的内核,因此每个新内核都会绑定每个请求。我同意@WiktorZychla。您需要确保每个WebAPI应用程序只有一个Ninject内核。这意味着您必须适应ninject webapi集成。