Главная страница   /   10. Castle Windsor (Внедрение зависимостей в .NET

Внедрение зависимостей в .NET

Внедрение зависимостей в .NET

Марк Симан

10. Castle Windsor

Меню:

  • Знакомство с Castle Windsor
  • Управление жизненным циклом
  • Работа с составными компонентами
  • Конфигурирование сложных API

В предыдущих девяти главах мы обсуждали паттерны и принципы, которые применяются к механизму внедрения зависимостей в общем, но за исключением нескольких примеров мы еще не рассматривали подробно то, как применять эти принципы и паттерны при использовании конкретного DI-контейнера. В этой главе вы увидите, как все эти общие паттерны применяются к Castle Windsor; для того чтобы эта глава принесла вам полноценную пользу, вам нужно ознакомиться с материалом предыдущих глав.

Castle Windsor – второй по старшинству DI-контейнер .NET. Он является частью более крупного проекта с открытым исходным кодом, известного как Castle Project, который предоставляет повторно используемые библиотеки для различных целей. Windsor является составляющей DI-контейнера в Castle Project, но может использоваться и независимо от любых других компонентов Castle. В этой главе мы рассмотрим его как отдельный компонент.

Помимо того, что он является одним из самых старых DI-контейнеров, Castle Windsor еще и один из самых зрелых контейнеров, и, если верить нескольким совсем не научным интернет-опросам, один из самых популярных контейнеров. Несмотря на то, что начать работать с Windsor достаточно легко, он предлагает богатое и расширяемое API.

В данной главе мы попутешествуем по Castle Windsor. Когда мы завершим свой тур, вы должны будете уже иметь достаточные знания об этом контейнере, чтобы суметь незамедлительно применять его. Мы не собираемся рассматривать продвинутые сценарии расширяемости, а вместо этого сконцентрируемся на главных паттернах применения. Рисунок 10-1 демонстрирует структуру главы.

Рисунок 10-1: Структура данной главы похожа на дерево. Первый раздел знакомит вас с контейнером Castle Windsor и объясняет, как сконфигурировать и разрешить компоненты. Остальные разделы, базирующиеся на введении, можно читать последовательно или более или менее независимо. В последнем разделе используется синтаксис и несколько методов, которые в первый раз встречаются в разделе, посвященном составным компонентам, поэтому, если вы захотите пропустить предпоследний раздел, можете случайно вернуться к нему снова.

Первый раздел обеспечивает полноценное знакомство с Castle Windsor и демонстрирует, как конфигурировать и разрешать компоненты. Следующие три раздела имеют дело с паттернами применения, которые требуют излишнего внимания; вы можете прочитать их все по порядку или пропустить некоторые и читать только те, которые вас интересуют.

Данная глава должна дать вам возможность приступить к работе, а также коснуться наиболее универсальных проблем, которые могут возникнуть при повседневном использовании Castle Windsor. Глава 10 не является законченной трактовкой Castle Windsor – на рассмотрение его могла бы уйти вся эта книга.

Вы можете прочитать эту главу изолированно от остальных глав части 4, чтобы изучить конкретно Castle Windsor, или можете прочитать ее совместно с другими главами, чтобы сравнить DI-контейнеры. Цель данной главы – показать, какое отношение Castle Windsor имеет к паттернам и принципам, описанным в предыдущих девяти главах, и как он их реализует.

10.1. Знакомство с Castle Windsor

10.2. Управление жизненным циклом

10.3. Работа с составными компонентами

10.4. Конфигурирование сложных API

10.5. Резюме