Управление настройкой автозапуска контейнера

Один из членов моей команды решил использовать autofac на одном из наших сервисов, и, потому что мы хотели попробовать его, мы с ним покончили.

Прошло немного времени, и метод настройки контейнера вырос! Он такой большой, что у нас с ним проблемы.

Разделение этого не принесло результатов, которые мы искали. Может быть, мы просто неправильно это используем.

Итак, мой вопрос: как мы можем управлять настройкой контейнера? Можем ли мы сделать дамп в XML или есть другие лучшие практики?

1 ответ

Решение

Есть много способов управлять настройкой контейнера с помощью автозапуска.

Одним из наиболее распространенных способов является использование Module и зарегистрируйте его у застройщика. Вы можете разбить несколько групп регистрации следующим образом:

public class DALModule : Module
{
   protected override void Load(ContainerBuilder builder)
   {
      builder.Register<SomeDataSomething>().As<IDataSomething>();  
      builder.Register<SomeOtherSomething( c => SomeOtherSomething.Create());
      //and so on
   }
}

Затем зарегистрируйте эти разбитые модули в сборщике с помощью кода или XML. (простой вызов builder.RegisterModule( new DALModule()) сделал бы это здесь). Смотрите вики-страницу на Структурирование с модулями.

Или вы можете использовать только файлы XML (или использовать XML и модули вместе). Смотрите вики-страницу на XML config для этого.

Другие вопросы по тегам