如何从容器创建一个新容器?

时间:2013-05-27 22:43:00

标签: c# inversion-of-control ioc-container structuremap

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

1 个答案:

答案 0 :(得分:2)

A nested container从其父容器中提取所有非瞬态实例(Singleton,HttpContext,ThreadLocalStorage作用域等)。一旦处置,它将处置在其中实现IDisposable的所有瞬态对象。

使用以下命令创建嵌套容器:

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

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