Как создать настраиваемую область Ninject, которая возвращает тот же объект, пока этот объект не будет удален?

В Ninject объявление привязки в одноэлементной области означает, что каждый раз будет возвращаться один и тот же объект. Всегда может быть только один объект.

Я бы хотел возвращать по одному объекту за раз. Другими словами:

  1. Первый вызов Get () создает экземпляр нового объекта и возвращает его.
  2. Последующие вызовы Get () возвращают тот же экземпляр.
  3. Объект удален.
  4. Первый вызов Get () после удаления объекта создает новый / второй объект и возвращает его.
  5. Последующие вызовы Get () возвращают объект, созданный на шаге 4.

РЕДАКТИРОВАТЬ: Эту проблему на самом деле довольно просто решить, используя использование поставщики и наличие рассматриваемого объекта вызывают событие при удалении. Мне было любопытно, есть ли способ сделать это с помощью областей видимости в Ninject, и я оставлю этот вопрос здесь, потому что ответ Стивена превосходен.

6
задан anthony 26 April 2011 в 21:02
поделиться