2017-09-11 2 views
0

.net 코어에서 MVC 웹 응용 프로그램을 작성 중이며 CosmosDB를 DocumentDB API와 함께 사용하게됩니다. 나는의 preformance 당신이어떻게 dotnet 핵심 응용 프로그램에서 Singleton으로 DocumentDB 클라이언트를 초기화합니까?

가 직접 모드에서 동작 할 때 각 DocumentClient 인스턴스가 스레드 안전하고 효율적인 연결 관리 및 주소 캐싱을 수행하는 응용 프로그램 노트의 수명에 대한 싱글 DocumentDB 클라이언트를 사용한다는 것을 읽는 계속. DocumentClient의 효율적인 연결 관리 및 성능 향상을 위해 응용 프로그램 수명 동안 AppDomain 당 하나의 DocumentClient 인스턴스를 사용하는 것이 좋습니다.

그러나이 작업을 수행하는 방법은 확실하지 않습니다.

각기 다른 콜렉션에 해당하는 내 컨트롤러에 내 서비스를 삽입하려면 다음 코드를 사용합니다.

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

어떻게 DocumentDB 클라이언트를 싱글 톤으로 만들고 이러한 서비스에 삽입/사용합니까?

답변

2

당신은 유사한 접근 사용할 수 있어야합니다 : 당신의 컨트롤러에서 다음

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

당신에 의해 간단하게 클라이언트를 주입 수 :

private readonly IDocumentClient _documentClient; 
public HomeController(IDocumentClient documentClient){ 
    _documentClient = documentClient; 
}