コンテナに複数の実装がある場合、どのようにして城のウィンザーが実行時にインターフェイスの適切な実装を選択することができるでしょうか。
たとえば、IExamCalc と呼ばれる単純なインターフェイスを使用して、その試験で誰かがどのように成績を上げたかを計算するとします。
いいえ、たとえば、次のようないくつかの実装があります。
public interface IExamCalc
{
int CalculateMark(ExamAnswers examAnswers)
}
public class WritenExam : IExamCalc
{
public int CalculateMark(ExamAnswers examAnswers)
{
return 4;
}
}
public class OralExam : IExamCalc
{
public int CalculateMark(ExamAnswers examAnswers)
{
return 8;
}
}
public class ExamMarkService
{
private IExamCalc _examCalc;
public ExamMarkService(IExamCalc examCalc)
{
_examCalc = examCalc;
}
public int[] CalculateExamMarks(ExamAnswers[] examAnswers)
{
IList<int> marks = new List<int>;
foreach(ExamAnswers examanswer in examaAnswers)
{
marks.Add(_examCalc.CalculateMark);
}
}
}
ExamMarkService が Windor を介して reslove されているとします。正しい実装がコンストラクターに挿入されていることを確認するにはどうすればよいですか? これはマルチテナンシーの問題の例ですか?
すべてが理にかなっていることを願っています
コリン・G