둘 다 IWriter 인터페이스를 구현하는 두 개의 구성 요소 (AWriter 및 BWriter)가 있습니다. 그리고 두 가지 구성 요소 (AComponent 및 BComponent) 모두 IComponent 인터페이스를 구현하고 둘 다 IWriter에 종속성이 있습니다. 하지만 AComponent에서 Windsor에게 AWriter의 인스턴스를 제공하고 BComponent에서 Windsor에게 BWriter의 인스턴스를 제공하라고 말하고 싶습니다. 그렇게하는 방법?Windsor Castle의 구성 요소 종속성에 표기법 추가
public interface IWriter
{
void Write();
}
public class AWriter : IWriter
{
public void Write()
{
Console.Write("A writer");
}
}
public class BWriter : IWriter
{
public void Write()
{
Console.Write("B writer");
}
}
public interface IComponent
{
void Do();
}
public class AComponent : IComponent
{
IWriter writer;
public AComponent(IWriter writer)
{
this.writer = writer;
}
public void Do()
{
writer.Write();
}
}
public class BComponent : IComponent
{
IWriter writer;
public BComponent(IWriter writer)
{
this.writer = writer;
}
public void Do()
{
writer.Write();
}
}
참고 : 여기에
코드입니다이 그냥 단순화 문제 및 종속성으로 BComponent에 aComponent의 및 BWriter에 AWriter을 두는 것은 옵션이 아닙니다. 또한이 예에서는 AComponent와 BComponent가 같을 수도 있지만 실제 상황은 아닙니다. 나는 실제 상황에서 훨씬 더 많은 의존성과 구성 요소를 가지고 있으며, 나는 그것에 귀찮게하고 싶지 않았다.그래서성에 어떻게 구현해야하는지 몇 가지 속성으로 지정하는 방법이 있습니까?
[Caste Windsor problem] 가능한 복제본 (http://stackoverflow.com/questions/7158858/caste-windsor-problem) –