В IOC Castle Windsor wiki [Примечание редактора: после того, как этот вопрос был написан, вики был дополнен дополнительным примером кода], имеется следующий (неполный) демонстрационный код.
Как мне завершить этот код, чтобы он правильно работал в консольном приложении C #?
//application starts...
var container = new WindsorContainer();
// adds and configures all components using WindsorInstallers from executing assembly
container.Install(FromAssembly.This());
// instantiate and configure root component and all its dependencies and their dependencies and...
var king = container.Resolve<IKing>();
king.RuleTheCastle();
// clean up, application exits
container.Dispose();
Обновление:
Обнаружено обучающие видеоролики по IOC вобщие сведения .
До добавления интерфейса и конкретной реализации интерфейса:
interface IKing
{
void RuleTheCastle();
}
public class King
{
void RuleTheCastle()
{
Consolel.Write("Rule the castle.");
}
}
Однако при запуске я выдал ошибку времени выполнения.
Обновление:
В итоге я использовал Ninject , потому что:
- Документация намного превосходит Castle Windsor (иSpring.NET в этом отношении).
- Используется компиляция выражений / LCG , поэтому он быстрее (от 8x до 50x) по сравнению с Castle Windsor, который использует Reflection.
Чтобы начать, нажмите «Посетить додзё», а затем выполните серию учебников по NInject.на GitHub .
После того, как вы это сделаете, вы можете просмотреть учебное видео на TekPub .Видео проходит концепции довольно быстро, поэтому было бы неплохо сначала завершить серию руководств по NInject для GitHub .