У меня есть проект WebAPI, использующий Ninject 3. Примерно в 99% случаев мои инъекции находятся в области запросов с использованием расширений Ninject.Web.WebApi.
Однако у меня есть случай, когда япотребуется получить версию типа Transient-scoped, которая обычно вводится с областью запроса.В идеале все его инъекции также должны были стать временными (или, по крайней мере, изолированными).
Так что я подумал, что должен быть какой-то способ использовать шаблон Factory для этого, но я не уверенкак его настроить:
Итак, мой класс, давайте просто назовем его Frog, зарегистрирован как .InRequestScope (), потому что большую часть времени я так хочу своих лягушек.
Но в этом одном месте мне действительно нужно получить новых, а не общих лягушек, потому что я делаю что-то параллельно.
Итак, я думал о Factory Pattern, где у меня будет FrogFactory, и когда я вызываю FrogFactory.Create
, он использует Ninject для разрешения Frog, но это новый, уникальный экземпляр Frog каждый раз, когда вы вызываетеFrogFactory.Create ();
(обратите внимание, что лягушка все еще должна иметь привязку .InRequestScope()
также для всех тех мест, где я делю своих лягушек).
Теперь у моей лягушки также есть инъекции, поэтому я 'Я бы предпочел, чтобы моя FrogFactory все еще использовала Ninject для разрешения лягушки, а не просто обновляла ее вручную.
Как бы я это настроил?(или есть какая-то магия условного связывания Ninject, которая помогает мне разобраться с заводским паттерном?)