0

有没有办法从现有的容器中创建一个新的 StructureMap 容器?我想拥有来自第一个容器的所有依赖项以及新容器中的其他依赖项。

4

1 回答 1

2

嵌套容器从其父容器中提取所有非瞬态实例(Singleton、HttpContext、ThreadLocalStorage 范围等)。一旦处置,它将处置在其中实现IDisposable的所有瞬态对象。

您使用以下方法创建嵌套容器:

using (IContainer nested = ObjectFactory.Container.GetNestedContainer())
{
    var service = nested.GetInstance<IService>();
    service.DoSomething();
}

当您需要对其中瞬态的生命周期进行细粒度控制时,通常使用嵌套容器,例如创建和处置每个HttpRequest场景中使用的对象。

于 2013-05-28T14:00:47.613 回答