Topshelf windows service, Structure map -> timer elapsed 事件的每个请求对象生命周期实现

Topshelf windows service, Structure map - > achieve per request object lifecycle for timer elapsed event

我有一个 windows 服务应用程序托管在 Topshelf 上。当服务启动时,我正在初始化结构图容器一次。我有一个计时器,计划任务在每个计时器经过事件上触发。 我想要类似 "per request " 的对象创建,以便在一个计时器滴答期间拥有相同的初始化对象实例,并在作业完成时处理它们。在计时器的下一个滴答声中,我希望有新的对象实例(例如像 dbcontext for EF.. 这样的对象)。 我怎样才能用结构图实现这个?

我想你要找的是嵌套容器:

http://structuremap.github.io/the-container/nested-containers/

天真的实现是将应用程序的容器传递到 Elapsed 事件处理程序,对其调用 GetNestedContainer(),然后在处理程序退出之前调用嵌套容器的 Dispose