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