Есть ли способ NOB в Ninject для настройки службы в одноэлементной области?
Я использую ninject
с ninject.extenions.conventions
, Я хотел бы использовать соглашение для инициализации некоторых служб в качестве одиночных. Я знаю, что это просто добавить SingletonAttribute
и использовать его с .WithAttribute<SingletonAttribute>()
во время настройки. Но я не хочу изобретать велосипед.
1 ответ
Нет ни одного атрибута синглтона, поставляемого с соглашениями Ninject или ninject. Вопрос в том, как вы хотите определить, какие типы связаны .InSingletonScope()
, Вместо атрибута вы также можете отфильтровать типы, имена которых заканчиваются на Service
, Или которые реализуют определенный интерфейс. или которые реализуют определенный атрибут.
Я бы посоветовал пойти на соглашение, основанное на именах, если это имеет смысл. Если нет, вам придется выбирать между общим интерфейсом или атрибутом. Если нет общих методов / свойств, тогда интерфейс маркера (пустой интерфейс) не имеет смысла, и вы должны использовать атрибуты.