Возьмите следующую бесполезную программу:
class Program
{
static void Main(string[] args)
{
IUnityContainer unityContainer = new UnityContainer();
IWindsorContainer windsorContainer = new WindsorContainer();
Program unityProgram = unityContainer.Resolve<Program>();
Program castleProgram = windsorContainer.Resolve<Program>();
}
}
UnityContainer вернет мне экземпляр программы, где контейнер Windsor будет генерировать исключение ComponentNotFoundException.
Я могу видеть аргументы для обоих поведений и не возражаю против того, с чем я в конечном итоге столкнулся, однако Prism V2 Drop 8 (последний на момент написания) опирается на поведение Unity внутренне, запрашивая классы, которые не были зарегистрированы.
Вместо того, чтобы находить и регистрировать все эти классы для Призмы, я бы предпочел просто заставить Виндзор вести себя как Единство. Я не нашел в Google ничего, что могло бы помочь мне сделать это (хотя моя терминология может быть неправильной), и документация по Виндзору довольно плохая ...
Может кто-нибудь предложить решение этой проблемы?