StructureMap 清除缓存实例

标签 structuremap

我在重置 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/

相关文章:

asp.net-mvc - 注入(inject)连接字符串与 IDbConnection

dependency-injection - 使用 StructureMap 时是否有方法检测和调试循环引用?

.net - NLog:自定义目标的依赖注入(inject)

structuremap - 重构 ObjectFactory.GetInstance 的大型应用程序以使用嵌套容器

c# - 与 StructureMap 等 IoC 容器相关的间接成本是多少?

c# - Lucene.Net IndexReader 的 StructureMap 'conditional singleton'

StructureMap 在构造函数中传递参数

c# - 使用结构图获取和/或弹出通用接口(interface)的所有实现

c# - Entity Framework + 生命周期 + StructureMap + 工作单元 + Windows 窗体?

dependency-injection - 具有运行时值的结构图配置 ...For<IProductProvider>().Use<ProductProvider>.Ctor<string> ("connectionString").Is(someValueAtRunTime);