Нет, нет. В нашем текущем проекте мы вручную имитировали концепцию Реестра, хотя наша реализация не так мощна, как Реестр StructureMap.
Если все, что вам нужно, это модульная конфигурация контейнера, то вы можете создать интерфейс маркера (может быть, IRegistry), а затем просканировать свое приложение на наличие классов IRegistry. С Unity вы можете разрешать классы, которые еще не были зарегистрированы в Unity, поэтому вы можете просто разрешить каждую реализацию IRegistry, как вы ее найдете. Классы реестра могут принимать контейнер в качестве параметра конструктора, а затем каждый класс может настраивать контейнер в соответствии с требованиями для этого слоя / компонента / библиотеки.
public interface IRegistry
{
void Configure();
}
public class ServicesRegistry : IRegistry
{
public ServicesRegistry(IUnityContainer container)
{
_container = container;
}
public sub Configure()
{
// Configure container for layer
}
}
Теперь при запуске вашего приложения где-то у вас может быть загрузчик приложений, который либо знает обо всех ваших реестрах, либо знает, как их сканировать.