问题描述
在创建新的客户端实例时,以下是否有区别:
services.AddSingleton<IElasticclient>(new Elasticclient(settings)
和
var client = new Elasticclient(settings)
变量 settings
是 var settings = new ConnectionSettings(node)
,其中节点是 var node = new Uri("http://localhost:9200")
解决方法
在第一个代码中,您将弹性客户端添加到 .net 中的 DI 框架作为单例实例,而在第二个代码中,您正在实例化弹性客户端的新实例。 如果您将 ElasticClient 注册为单例服务,您可以随时进行构造函数注入以使用它,并且您的应用程序中将有一个实例,而第二种方法每次都会创建新对象。 你可以看看.net官方的依赖注入框架here。
.