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

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

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

Марк Симан

13. Autofac

Меню:

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

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

Autofac – это пример так называемых "DI-контейнеров второго поколения".

Примечание

Примерами DI-контейнеров второго поколения являются DI-контейнеры Ninject и Unity.

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

Autofac – это достаточно исчерпывающий DI-контейнер, имеющий тщательно спроектированный и логичный API. Он начал развиваться с конца 2007 года и, кажется, имеет достаточно обширную клиентскую базу.

В этой главе мы рассмотрим то, как можно использовать Autofac для применения принципов и паттернов, описанных ранее в частях 1-3. На рисунке 13-1 продемонстрирована структура этой главы.

Рисунок 13-1: Эта глава состоит из четырех разделов. Первый раздел знакомит нас с API Autofac и должен рассматриваться в качестве предпосылки следующих трех разделов. Каждый из четырех разделов может быть прочитан независимо от остальных разделов, несмотря на то, что в четвертом разделе используются методы, которые вводятся в третьем разделе. Тема четвертого раздела значительно отличается от темы третьего, поэтому читать их можно независимо друг от друга. Но, все-таки, вам может понадобиться более детальная информация о некоторых составляющих API.

Эта глава должна дать вам возможность приступить к работе, а также справиться с большинством общепринятых проблем, которые могут возникнуть при ежедневном использовании Autofac. Это не окончательная трактовка Autofac, поскольку всецелое его рассмотрение заняло бы несколько глав или, может быть, даже целую книгу. Но если вам хочется получить больше информации об Autofac, то лучше всего начать изучения с главной страницы сайта Autofac – http://autofac.org.

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

13.1. Знакомство с Autofac

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

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

13.4. Регистрация сложных API

13.5. Резюме