2014-11-12 4 views
0

Unity를 사용 중이고 다음을 수행하려고합니다. 기본적으로 기본 생성자에 값 유형을 전달하려고합니다. 여기 Dependency Injection 비 인터페이스 생성자

나는 또한 생성자가 아닌 인터페이스를 주입 할 수 있도록하려면, 일반적인 InterfaceL 여기

public interface Irepo 
{ 

void test(); 
} 

가 구현 된 클래스입니다. 이것이 가능한가? 여기

public class Repo : baseRepo, Irepo 
{ 
public Repo(IOther other, string username) : base(username) 
{} 
public void test(){} 
} 

이 unityconfig입니다 :

container.RegisterType<Irepo, Repo>(); 
container.RegisterType<IOther , Other>(); 

필자는 이것을 시도하지만, 리포이 문자열을 사용합니다 매개 변수가없는 말했다. 누구든지 아이디어가 있습니까?

container.RegisterType<Irepo, Repo>("user", new InjectionConstructor("user")); 

답변

2

당신이 생성자의 인수를 제공하는 InjectionConstructor를 제공하는 경우는, 당신은 인터페이스 자신을 등록하는 경우에도, 그들 모두를 제공해야합니다.

container.RegisterType<Irepo, Repo>("user", new InjectionConstructor(
    container.Resolve<IOther>(), 
    "user" 
)); 
+0

O 정말 고마워요 !!!!!! – Botonomous

관련 문제