我在重置 StructureMap 的配置时遇到问题。只有在我批量运行所有 测试时才会失败。之前的测试是注入(inject) SingleInvoicePresenter 的一个实例,但是当我进行这个测试时,我需要所有的缓存都消失了。我认为 ResetDefaults() 会清除所有先前注入(inject)的对象,但此测试在断言上失败(当与所有其他测试一起运行时)
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(); });
但不管有没有它都会失败。
最佳答案
StructureMap.ObjectFactory.EjectAllInstancesOf<SingleInvoicePresenter>();
关于StructureMap 清除缓存实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628658/