Возьмите следующую бесполезную программу:
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 внутри, запрашивая классы, которые не были зарегистрированы.
Вместо того, чтобы находить и регистрировать все эти классы для Prism, я бы скорее просто заставил Windsor вести себя как Unity. Я ничего не нашел в google, чтобы помочь мне сделать это (хотя моя терминология может быть неправильной), а документация Windsor довольно плохая...
Может ли кто-нибудь предложить решение этой проблемы?