0

根据StructureMap 的文档,容器的默认行为是父容器每次请求一个新对象实例时解析一个新对象实例,而嵌套容器解析相同的对象实例。

在 99% 的情况下这很好 - 但是我很想知道是否有一种方法可以设置嵌套容器的行为类似于父容器并默认解析新的对象实例 - 而无需依赖该.AlwaysUnique()方法。

这是可能的还是.AlwaysUnique唯一的方法来逐个对象地做到这一点?

4

1 回答 1

1

我认为除了嵌套容器配置的明确规范之外,没有任何支持,因为它是围绕为对象解析创建临时上下文而设计的。SM 3.0 HttpContextScoped生命周期中的 IIRC 是使用嵌套容器实现的。

如果您想灵活地从容器中解析现有对象或创建一个新对象,您可以实现工厂,通过将上下文注入工厂或基于显式方法调用(factory.Create()factory.ReuseIfExistsOrCreate())为您处理它。

希望这可以帮助!

于 2015-03-16T09:38:41.043 回答