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