好的,我将 StructureMap 连接到我的 Web Api 应用程序(在 StackOverflow 和 Internet 上的其他地方有大量示例如何执行此操作)。我对 Web Api 中对象生命周期维护的理解是它是通过嵌套容器完成的。
对于通过嵌套容器进行对象生命周期维护的整个想法,Raven 的会话对象必须在子容器中创建为瞬态单例。现在我已经IDocumentStore
在父容器中定义并限定为单例。IDocumentSession
也在父容器中定义,但范围为 HttpContext。当请求进来时,BeginScope()
被调用,嵌套容器被创建,但IDocumentSession
其中的对象是从父级继承的,而不是被创建的。
我不明白这应该如何工作。如果对象不是在子容器中作为瞬态单例创建的,而是从父容器继承的,那么当嵌套容器被释放时,它将返回到父容器。这会破坏整个想法。另一方面,如果要在嵌套容器中创建会话作为瞬态单例,那么如何实现呢?如何验证此类设置的正确性?