Объекты, созданные AsPerRequestSingleton(), не удаляются автоматически

Я пытаюсь использовать внедрение зависимостей с TinyIOC в NancyFX.

То, что я намерен сделать, это иметь один SqlConnection на запрос, который должен быть закрыт автоматически. До сих пор я создавал CustomBootstrapper, который переопределяет метод ConfigureRequestContainer и регистрирует мой IDbConnectionService с помощью метода AsPerRequestSingleton().

Это должно гарантировать, что SqlConnectionService существует для каждого запроса и должен быть уничтожен после запроса. По крайней мере, это то, что я думаю, должно быть сделано после прочтения документации.

Пользовательский загрузчик:

https://github.com/mschlechter/NancyFxTutorial/blob/master/NancyFxTutorial.Web/CustomBootstrapper.cs

И SqlConnectionService:

https://github.com/mschlechter/NancyFxTutorial/blob/master/NancyFxTutorial.Web/Services/SqlConnectionService.cs

Этот сервис реализует интерфейс IDisposable и должен располагать базовым SqlConnection (IDbConnectionService наследуется от IDisposable).

К сожалению, этот метод Dispose() никогда не вызывается. Так что, как сейчас обстоят дела, он будет держать соединения с базой данных открытыми. Что (действительно) плохо:-)

Мой вопрос заключается в том, как это исправить с помощью внедрения зависимостей.

Я пытаюсь подражать шаблон, который я знаю из Spring MVC на Java. Каждый сервис может вызвать getCurrentSession(), чтобы получить сеанс Hibernate. ScopeFactory в области запроса внедряется, и каждый сервис может выполнять sessionFactory.getCurrentSession() для получения текущего сеанса.

Я хотел бы сделать то же самое, используя NancyFX и TinyIOC.

Возвращаясь к моему первоначальному вопросу: почему метод Dispose не вызывается для объекта, созданного с помощью AsPerRequestSingleton(), и что я могу сделать, чтобы получить ожидаемый результат? (объект, который живет во время действия области запроса / ответа, и будет автоматически удален, когда будет сделано)

Спасибо заранее и с наилучшими пожеланиями, Марк Шлехтер

0 ответов

Другие вопросы по тегам