Управление настройкой контейнера AutoFac
-
22-09-2019 - |
Вопрос
Один из членов моей команды решил использовать Autofac на одном из наших услуг, и потому что мы хотели попробовать его, мы застряли с ним.
Теперь прошло некоторое время, и метод настройки контейнера вырос! Это настолько большое, что у нас есть проблемы с этим.
Разделение его не принесло результатов, которые мы искали. Может быть, мы просто используем это неправильно.
Итак, мой вопрос: как мы можем управлять настройкой контейнера? Можем ли мы бросить в XML или есть другие лучшие практики?
Решение
Есть много способов управления настройкой контейнеров с помощью AutoFac.
Один из наиболее распространенных способов - использовать 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 для этого.