Управление настройкой автозапуска контейнера
Один из членов моей команды решил использовать 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 для этого.