Я пытаюсь преобразовать некоторые приложения, использующие Ninject, в Castle Windsor, чтобы устранить некоторые зависимости.
Я не могу понять, как реализовать некоторые функциональные возможности Ninject с помощью контейнера. Методы регистрации в Windsor.
А именно (в Ninject):
Kernel.Bind<ISessionProvider>().To<UnitOfWorkSessionProvider>();
Kernel.Bind<ISessionProvider>().To<ThreadSafeSessionProvider>()
.WhenClassHas<RequireThreadSafeSession>();
Thisсообщает Ninject, что при создании класса с ISessionProvider в конструкторе используйте UnitOfWorkSessionProvider, если только у него нет атрибута RequireThreadSafeSession, и в этом случае ему присваивается ThreadSafeSessionProvider.
Вопрос первый - это можно сделать в Windsor?Документация немного запутанная.
Вопрос второй - как это сделать?Кажется, что условное связывание разрешено в классе конфигурации AllTypes, но шаблоны использования не столь прозрачны