2017-09-11 24 views
0

我正在.NET核心中构建一个MVC Web应用程序,并将使用带有DocumentDB API的CosmosDB。我一直在读书,对性能与你应该如何在一个dotnet核心应用程序中将DocumentDB客户端初始化为一个单身人士

使用单DocumentDB客户端应用程序注释的生命周期,每个DocumentClient实例是线程安全的,高效的进行连接管理和地址缓存在直接模式下操作时。为了通过DocumentClient实现高效的连接管理和更好的性能,建议在应用程序的整个生命周期中,为每个AppDomain使用一个DocumentClient实例。

但我不确定如何做到这一点。

我将使用下面的代码将我的服务注入到我的控制器中,每个控制器对应不同的集合。

services.AddScoped<IDashboard, DashboardService>(); 
services.AddScoped<IScheduler, SchedulerService>(); 
services.AddScoped<IMailbox, MailboxService>(); 

如何创建DocumentDB客户端作为Singleton并在这些服务中注入/使用它?

回答

2

您应该能够使用类似的方法:

services.AddSingleton<IDocumentClient>(x => new DocumentClient(UriEndpoint, MasterKey)); 

然后在你的控制器,你可以通过简单地注入客户端:

private readonly IDocumentClient _documentClient; 
public HomeController(IDocumentClient documentClient){ 
    _documentClient = documentClient; 
} 
相关问题