Я разрабатываю проект, в котором в качестве архитектуры DDD используется Castle Windsor WCF Integration Facility. Есть проект одного контейнера, проект одного домена, несколько проектов внедрения и исполняемая консоль. Дерево зависимостей может быть показано ниже:
Консоль (exe) -> Контейнер (windsor) -> {Реализации -> DomainInterfaces}
Консольный проект вызывает Container.Bootstrapper.Initialize (), и установщики замка ищут эту сборку в этом методе. В режиме отладки работает успешно, виндзор загружает все зависимости и создает службу WCF. Когда курсор входит в «Инициализировать», я вижу недавно загруженные модули в окне «Модули».
Код установки зависимости показан ниже:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container = new WindsorContainer().AddFacility<WcfFacility>()
.Register
(
Component.For<IDataProvider>().Instance(new DataProvider(s_DataConfigurationElement)).LifeStyle.Singleton,
Component.For<IUserRepository>().ImplementedBy<UserRepository>().LifeStyle.Singleton,
Component.For<IDomainManager>().ImplementedBy<DomainManager>().LifeStyle.Singleton,
Component.For<IGateway>().ImplementedBy<Gateway>().LifeStyle.PerThread.AsWcfService()
);
}
Проблема в режиме выпуска. Я не мог установить точку останова для этого метода, и установщики не могли работать, поэтому в окне модулей ничего не загружалось. В режиме выпуска он работает только в том случае, если оптимизация кода не отмечена, а информация об отладке full-pdb проверена в параметрах проекта консольного проекта. Это известная проблема или ошибка?
Заранее спасибо.