이의 내가 모두 동일한 인터페이스를 구현하는 두 가지 구체적인 클래스가 있다고 가정하자 용기 :생성자 주입으로 해결 종속성 및 이름 매핑
var container = new UnityContainer();
container.RegisterType<IDataSource, DataSourceA>("A");
container.RegisterType<IDataSource, DataSourceB>("B");
내가 종속성 해결 때 맵핑 이름을 지정할 수 있다는 사실을 알고 :
var myDataSource = conatiner.Resolve<IDataSource>("A");
을
그러나 제 경우에는 의존성을 스스로 해결하지 않겠습니다. 나는 많은 다른 컨트롤러를 만들고 있는데, 나는 모든 컨트롤러를 만들기 위해 UnityDependencyResolver
(ASP.Net MCVC에서)을 사용할 것이다. 일부 컨트롤러에는 DataSource A가 필요하고, 일부에는 DataSource B가 필요하고, 일부에는 두 가지가 모두 필요합니다. 내가하고 싶은 것은 다음과 같이 생성자 매개 변수에서 속성으로 사용할 매개 변수를 지정하는 것입니다.
public class ReportController{
public ReportController([InjectionQualifier("A")] IDataSource dataSource)
{
...
}
}
가능한가요? 나는 자바에서 봄의 세계에서 왔고이 스택에서 @Qualifier 어노테이션을 사용했다.
. 여기를 참조하십시오. http://stackoverflow.com/questions/7046779/with-unity-how-do-i-inject-a-named-dependency-into-a-constructor – SouthShoreAK