5

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

  1. 在 global.cs,我声明如下: ObjectFactory.Initialize(x => { x.For().Use(); }

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

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

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

4

1 回答 1

6

这样做的方法是IContainer在你的类中作为构造函数参数。有关更多信息,请参阅此内容

于 2016-07-06T08:18:33.070 回答