获取StructureMap 4.0中的现有容器

本文关键字:StructureMap 获取 | 更新日期: 2023-09-27 17:55:05

我有一个StructureMap 4.0的问题。在使用StructureMap 3.0时,我使用ObjectFactory来配置所有实例,并且很容易通过它自己的接口在解决方案中的任何地方获得实例。例如:

  1. 在global.cs中,我声明如下:初始化(x=> {x.For().Use();}

  2. 在另一个类中,例如Family.cs,很容易得到例如:var person = ObjectFactory.GetInstance();

然而,我在更新StructureMap到4.0后遇到了问题。它使用容器而不是ObjectFactory,我没有找到任何方法来获得现有的容器。我的意思是这个代码是错误的var person = container.GetInstance();

如果我在global.cs中声明Container为静态变量,那么我可以从Family.cs类中访问它。我不喜欢这样。我希望容器工作像ObjectFactory通过抓取现有的容器,在global.cs中声明,但我不知道如何做到这一点。

获取StructureMap 4.0中的现有容器

这样做的方法是将IContainer作为类中的构造函数参数。StructureMap