您如何获得一个Structuremap子容器来解决传递依赖关系?

时间:2019-02-06 14:39:07

标签: c# structuremap

我正在尝试在测试场景中在StructureMap中使用子容器。我有这样的情况,其中IFooIFooDependent的依赖项,而IFooDependent在父级中被配置为单例。

var mockedIFoo = GetMockedIFoo();
var childContainer = parentContainer.CreateChildContainer();
childContainer.Model.For<IFooDependent>().Default.EjectObject(); // force re-resolution
childContainer.Inject(mockedIFoo);
childContainer.Configure(c => c.For<IFooDependent>().Use<FooDependent>());

还有其他依赖于IFoo的对象,但是当我执行childContainer.GetInstance<IFooDependent>()时,容器使用父容器中的注册解析了IFoo,而不是我注入的实例。< / p>

我已经尝试过通过手动注册其他子项(通过手动注册一些其他依赖项)来进行注册,前提是在StructureMap的chain of responsibility实现中意味着一旦在父项中解决了请求,则在child将用于解决问题,但这似乎没有解决问题。

0 个答案:

没有答案