使用StructureMap在对象层次结构之间共享数据



我的问题与StructureMap有关,以及如何实例化对象以在同一http请求上下文中的对象层次结构之间共享数据?

我有下面的类层次结构,它生成一些数据。

IPageBuilder
-> IShipmentBuilder
-> IItemBuilder
-> IItemShippingOptionBuilder
-> IShippingOptionBuilder
-> IDeliveryMethodBuilder
-> IPaymentBuilder
-> ISummaryBuilder

在客户端代码中:我们使用IPageBuilder。Build()将调用生成器的层次结构并返回一个对象。

基本上,我们希望将一些数据从IItemBuilder共享到ISummaryBuilder。例如,IItemBuilder进行API调用,响应也应与ISummaryBuilder共享。

尝试过的方法:引入一个像IDataContext这样的对象,并在上面所有的构建器中将其作为参数传递,但这似乎是一个乏味的解决方案。

预期的解决方案:有没有一种使用StructureMap的方法,我可以在IItemBuilder中注入IDataContext,存储一些数据,并且应该与ISummaryBuilder共享相同的数据,并且这应该发生在每个http请求上下文中。

简而言之,有没有一种方法可以在structuremap中为每个http请求创建一个singleton?

为IDataContext导入了PackageStructureMap.Web并使用了HttpContextBasedLifeCycle,并在DataContext具体类中保留了一个字典,以将数据持久化到httpContext的生存期。

最新更新