设置 StructureMap 嵌套容器以默认解析唯一对象实例

Set a StructureMap Nested Container to resolve unique object instances by default

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

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

这可能吗?.AlwaysUnique这是逐个对象进行此操作的唯一方法吗?

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

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

希望对您有所帮助!