Как вы можете получить замок Виндзор, чтобы выбрать правильную имплантацию интерфейса во время выполнения, когда у вас есть несколько реализаций в контейнере.Несколько инъекций интерфейса с виндзором замка
Например, скажем, у меня есть простой интерфейс 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 в настоящее время resloved через WINDOR как я могу убедиться, что правильная реализация впрыскивается в конструкторе и это пример проблемы с несколькими арендаторами?
Надежда, что все делает Sence
Colin G