有没有办法从现有的容器中创建一个新的StructureMap容器?我想拥有fisrt容器中的所有依赖项以及新容器中的其他依赖项。
答案 0 :(得分:2)
A nested container从其父容器中提取所有非瞬态实例(Singleton,HttpContext,ThreadLocalStorage作用域等)。一旦处置,它将处置在其中实现IDisposable
的所有瞬态对象。
使用以下命令创建嵌套容器:
using (IContainer nested = ObjectFactory.Container.GetNestedContainer())
{
var service = nested.GetInstance<IService>();
service.DoSomething();
}
当您需要对其中的瞬态生命周期进行细粒度控制时,通常会使用嵌套容器,例如创建和处理每HttpRequest
个场景中使用的对象。