인터페이스를 생성자 인수로 사용하는 클래스가 있습니다. 이 인터페이스에는 두 가지 구현이 있으며 변수를 기반으로 런타임에 사용할 구현을 결정하고 싶습니다.동적 인 매개 변수가있는 자동 채우기 구성 요소
문제는 위의 클래스가 Autofac에 의해 해결되는 개체 계층 구조의 깊이이므로 문제를 전달할 수 없다는 것입니다.
아래와 같은 어싱은 내가 성취하고자하는 것입니다.
public interface IInterface1 {}
public interface IInterface2 {}
public class Class1 : IInterface2
{
public Class1(IInterface1 interface1)
{
}
}
public class Class2
{
public Class2(IInterface2 interface2)
{
}
}
public class Class3
{
public void GetClass2Instance(string interface1ImplementationToChoose)
{
// want to change which implementation of IInterface1 is resolved based on the interface1ImplementationToChoose variable
var class2 = container.Resolve<Class2>();
}
}
아이디어가 있으십니까?
는 UPDATE :
명확히하려면이 잘 작동 기존의 응용 프로그램에서 사용되는 기존 개체 계층 구조입니다. 또한 객체 모델은이 예제에 표시된 것보다 훨씬 큽니다. 결과적으로 객체 그래프의 각 생성자에 대한 팩토리를 해당 그래프의 깊은 클래스에서 사용되도록 팩토리에 전달해야하는 것은 아닙니다.
IInterface1의 다른 구현이 Class2없이 Class1로 전달되도록하는 방법이 있습니까?
감사
"이 인터페이스에는 두 가지 구현이 있습니다."하지만 샘플에는이 점이 잘 나타나지 않습니다. 정교하게 설명해 주실 수 있으시면 그에 따라 답변을 업데이트하겠습니다. –