C# AsPerRequestSingleton()创建的对象不会自动释放
我试图在NancyFX中使用TinyIOC的依赖项注入 我打算做的是,每个请求有一个SqlConnection,它应该自动关闭。到目前为止,我所做的是创建一个CustomBootstrapper,它覆盖ConfigureRequestContainer方法,并使用AsPerRequestSingleton()方法注册IDbConnectionService 这应该确保每个请求都存在SqlConnectionService,并且应该在请求后销毁。至少,在阅读文档之后,我认为它应该这样做 自定义引导程序: 以及SqlConnectionService: 此服务实现IDisposable接口,并应处理底层SqlConnection(IDbConnectionService继承自IDisposable) 不幸的是,这个Dispose()方法从未被调用。因此,就目前情况而言,它将保持与数据库的连接打开。这是一件(真的)坏事:-) 我的问题是如何使用依赖注入来解决这个问题 我试图在Java上模拟我从SpringMVC知道的一种模式。每个服务都可以调用getCurrentSession()来获取Hibernate会话。注入请求范围的SessionFactory,每个服务都可以执行SessionFactory.getCurrentSession()来获取当前会话 我很想用NancyFX和TinyIOC做同样的事情 回到我最初的问题:为什么不对使用AsPerRequestSingleton()创建的对象调用Dispose方法?我该怎么做才能得到预期的结果?(在请求/响应范围期间存在的对象,完成后将自动处置) 提前感谢并致以最良好的问候,C# AsPerRequestSingleton()创建的对象不会自动释放,c#,nancy,tinyioc,C#,Nancy,Tinyioc,我试图在NancyFX中使用TinyIOC的依赖项注入 我打算做的是,每个请求有一个SqlConnection,它应该自动关闭。到目前为止,我所做的是创建一个CustomBootstrapper,它覆盖ConfigureRequestContainer方法,并使用AsPerRequestSingleton()方法注册IDbConnectionService 这应该确保每个请求都存在SqlConnectionService,并且应该在请求后销毁。至少,在阅读文档之后,我认为它应该这样做 自定义引导
Marc Schlechter我用Autofac替换了TinyIOC,并使用了它的InstancePerRequest。现在一切正常。虽然您已经找到了一个解决方案,但对这个()答案的评论表明这可能是TinyIoC的一个已知问题。