Начальная загрузка Unity - Композиция Root location

У меня есть простой проект .NET, и мне интересно, каков наилучший подход для начальной загрузки Unity. Я начал с WebApp с кучей контроллеров. Каждый из этих контроллеров имеет свой собственный класс Handler, которому контроллер делегирует реализацию. Что-то в строках:

public class UsersHandler : IUsers
{
    IAuthenticationClient authenticationClient;
    ILogger logger;

    public UsersHandler(IAuthenticationClient authClient, ILogger logger) { ... }       
}

В методе Application_Start файла Global.asax я создаю UnityContainer и регистрирую типы. Есть второй проект (библиотека классов), который в основном является бизнес-уровнем.

Теперь я создал новую библиотеку классов (назовем ее 'XYZ') для обработки различной ответственности приложения. DI также используется здесь.

Для начала я создал класс Singleton, который будет служить точкой входа в этот проект, где я создаю экземпляр UnityContainer и регистрирую типы.

Теперь, когда у меня это работает, я начал задумываться, кто должен обрабатывать регистрацию типов, имея в виду, каким должен быть корень компоновки моего приложения. WebApp будет первым выбором, но для этого потребуется добавить ссылку на проект XYZ, который кажется неправильным, поскольку он используется бизнес-уровнем.

1) Должен ли корень Composition быть новой библиотекой классов, ссылающейся как на WebApp, так и на 'XYZ' и инициализированной в global.asax моего WebApp? Однако это может вызвать циклическую зависимость, так как этот проект Bootstrapper будет знать WebApp и наоборот.

2) Что, если мне нужно разрешить зависимость в проекте XYZ? В настоящее время у меня есть экземпляр класса UnityContainer, поэтому я могу сделать это:

var logger = container.Resolve<ILogger>();

Это хорошая практика в любом случае?