我在重置StructureMap的配置时遇到了问题。只有当我运行所有的测试时才会失败。之前的一个测试正在注入SingleInvoicePresenter的实例,但是当我到达这个测试时,我需要清除所有缓存。我认为ResetDefaults()会清除任何先前注入的对象,但是这个测试在断言时失败(当与所有其他测试一起运行时)。
StructureMap.ObjectFactory.ResetDefaults();
StructureMap.ObjectFactory.Configure(x => { x.For<SingleInvoicePresenter>().AlwaysUnique(); });
SingleInvoicePresenter P1 = StructureMap.ObjectFactory.GetInstance<SingleInvoicePresenter>();
SingleInvoicePresenter P2 = StructureMap.ObjectFactory.GetInstance<SingleInvoicePresenter>();
Assert.AreNotSame(P1, P2);
编辑 - 我认为即使没有这行代码,这个应该也能工作。
StructureMap.ObjectFactory.Configure(x => { x.For<SingleInvoicePresenter>().AlwaysUnique(); });
但无论是否使用它,都会失败。