Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

AddSingleton vs AddScoped vs Add Transient C# Asp.net Core는 무엇입니까?

<시간/>

Startup.cs에 종속성을 등록하는 방법에는 세 가지가 있습니다. 즉, AddSingleton, AddScoped 및 AddTransient.

싱글톤 추가

유형을 싱글톤으로 등록하면 애플리케이션 전체와 모든 요청에 ​​대해 하나의 인스턴스만 사용할 수 있습니다.

정적 개체를 갖는 것과 유사합니다.

인스턴스는 첫 번째 요청에 대해 생성되며 애플리케이션 전체와 각 후속 요청에 대해 동일하게 사용할 수 있습니다.

public void ConfigureServices(IServiceCollection services){
   services.AddSingleton<ILog,Logger>()
}

범위 추가

유형을 범위 지정으로 등록하면 요청당 애플리케이션 전체에서 하나의 인스턴스를 사용할 수 있습니다. 새 요청이 들어오면 새 인스턴스가 생성됩니다. 범위 추가는 요청당 단일 개체를 사용할 수 있음을 지정합니다.

public void ConfigureServices(IServiceCollection services){
   services.AddScoped<ILog,Logger>()
}

과도 추가

유형을 Transient로 등록하면 새 인스턴스가 생성될 때마다. Transient는 모든 서비스/컨트롤러는 물론 모든 요청과 모든 사용자에 대해 새 인스턴스를 만듭니다.

public void ConfigureServices(IServiceCollection services){
   services.AddTransient<ILog,Logger>()
}


매개변수 싱글톤 추가 범위 추가 과도 추가
인스턴스 동일한 각 요청/각 사용자. 요청당 하나. 영원히 다릅니다.
폐기됨 앱 종료 요청 종료 요청 종료
사용된 싱글톤 구현이 필요한 경우. 사용자마다 동작이 다른 애플리케이션. 경량 및 상태 비저장 서비스.