[.NET Core] ASP.NET Core 3.1 - 제네릭클래스 의존성 주입 방법
2020. 8. 5. 23:20
728x90
반응형
ASP.NET Core 3.1 에서 ConfigureServices 메소드에서 Dependency Injection 의존성 주입을 진행하는데,
제네릭 클래스의 경우 어떻게 진행해야 하는지 궁금했습니다.
MSDN에서는 정보를 찾지 못해서, stackoverflow를 검색한 결과, 해당 내용을 찾을 수 있었습니다.
Sample Code
먼저 의존성 주입을 위한 제네릭 interface 와 class를 제작해줍니다.
public interface ISample<Request, Response>
{
bool GetData();
}
public class Sample<Request, Response> : ISample<Request, Response>
where Request : class, new()
where Response : class, new()
{
public bool GetData()
{
return true;
}
}
의존성 주입 (Dependency Injection)
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddTransient(typeof(ISample<,>), typeof(Sample<,>));
}
Startup.cs 의 ConfigureServices 메소드에, 위와 같이 typeof를 이용해서 제네릭 클래스의 경우 의존성을 주입할 수 있습니다.
public HomeController(ILogger<HomeController> logger, ISample<Req, Res> sample)
{
_logger = logger;
}
이제 컨트롤러에서 위와같이 사용하시면 됩니다.
만약 제네릭 타입을 하나만 이용하실 경우에는 , (콤마) 없이 ISample<> 만 사용해서 적용해주시면 됩니다.
728x90
'.NET' 카테고리의 다른 글
[Blazor] ASP.NET Core Blazor 수명 주기 (0) | 2021.01.22 |
---|---|
[ASP.NET] - Http Handler 및 IHttpHandler 사용방법 (0) | 2020.08.14 |
[.NET Core] .NET Core 3.1 - Swagger 적용 (0) | 2020.05.19 |
[.NET Core] ASP.NET Core 3.1 - NLog 설정 및 사용 방법 (0) | 2020.05.15 |
[Core 3.1] CentOS7 - .NET Core SDK 설치하기 (0) | 2020.02.25 |