2016-09-19 3 views
4

IRule이라는 인터페이스와이 인터페이스를 구현하는 여러 클래스가 있습니다. NET 코어 종속성 주입 컨테이너를 사용하여 모든 구현 된 규칙을로드하므로 모든 IRule 구현을로드하려고합니다..NET 핵심 종속성 삽입 -> 모든 인터페이스 구현 얻기

불행히도 나는이 일을 할 수 없습니다. 컨트롤러의 내 컨트롤러에 IEnumerable<IRule>을 삽입 할 수 있다는 것을 알고 있지만 Startup.cs에서이 설정을 등록하는 방법을 모르겠습니다.

+0

기본 서비스 컨테이너를 사용하고 있습니까? – Maarten

+0

[Minimal, Complete and Verifiable Example] (http://stackoverflow.com/help/mcve)을 제공해주십시오. 지금까지 어떤 시도를 했습니까? –

답변

7

모든 IRule 구현을 하나씩 등록해야합니다. MS.Ext.DI 라이브러리는이를 IEnumerable<T>으로 해결할 수 있습니다.

services.AddTransient<IRule, Rule1>(); 
services.AddTransient<IRule, Rule2>(); 
services.AddTransient<IRule, Rule3>(); 
services.AddTransient<IRule, Rule4>(); 
+0

스티븐 감사합니다! – Nik

+0

놀랍습니다! –

관련 문제