我有兩個組件(AWriter和BWriter),其中都實現了IWriter接口。我有兩個組件(AComponent和BComponent),它們都實現了接口IComponent,並且都依賴於IWriter。但是在AC組件中,我想告訴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();
}
}
注:這只是簡單的問題,並把AWriter在在aComponent和BWriter在BComponent的依賴是不是一種選擇。在這個例子中,AComponent和BComponent也可能看起來相同,但這不是真實的情況。在實際情況中,我有更多的依賴和組件,我不想爲此而煩惱。
那麼,有沒有辦法以某種方式指定哪些實現應該Castle給我?
[Caste Windsor問題]的可能重複(http://stackoverflow.com/questions/7158858/caste-windsor-problem) –