-
[.NET] IServiceCollection기반 서비스에 args 값 의존성 주입(DI) 간단히 처리하기.NET/개념 및 유용한 팁 2022. 8. 3. 22:03반응형
간혹 콘솔프로그램의 args를 IServiceCollection 및 Builder로 구성된 ASP.NET Core 및 Worker 에 그대로 의존성 주입하고 싶을때가 있다. 방법은 간단한다. AddSingleton(args); 한줄이면 끝난다.
아래코드는 .NET 6기반의 ASP.NET Core WebApi 프로젝트이다.
[Program.cs]
var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddSingleton(args); // 의존성 주입 var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();
[Controller]
using Microsoft.AspNetCore.Mvc; namespace WebApplication1.Controllers { [ApiController] [Route("[controller]")] public class TestController : ControllerBase { private readonly string[] _args; public TestController(string[] args) { _args = args; } [HttpGet] public string Get() { return _args[0]; } } }
아래 이미지는 위 예제 소스코드로 만든 API 서비스를 실행할 때, "HelloWorld" 값을 arg 에 담아 실행했을 때 결과다.
반응형'.NET > 개념 및 유용한 팁' 카테고리의 다른 글
[.NET] ASP.NET Core 및 비동기(async, await) 프로그래밍 개발에 도움이 되는 설명 사이트 (0) 2022.12.26 [EFCore] EF Core Tool 로 C# 모델 클래스 -> DB 마이그레이션 하기 (0) 2022.08.07 [EFCore] Microsoft.Data.SqlClient.SqlException 오류 뜰 때 (0) 2022.01.30 [xUnit] 테스트 프로젝트를 로깅(Logging)하는 방법 (0) 2021.10.31 [EF Core] 여러 프로젝트가 참조된 솔루션에서 dotnet ef 명령어 사용시 유의사항정리 (0) 2021.08.31