使用 StructureMap,假设我为给定接口配置了几个实例,由名称标识:
registry.For(interfaceType).Add(firstType).Named(firstName);
registry.For(interfaceType).Add(secondType).Named(secondName);
registry.For(interfaceType).Use(defaultType);
这很适合我的需求。但是,在某些应用场景中,我有理由重写一个实例以使用与另一个实例相同的具体类型。如此有效地使用这样的东西:
registry.For(interfaceType).Add(defaultType).Named(firstName);
registry.For(interfaceType).Add(defaultType).Named(secondName);
registry.For(interfaceType).Use(defaultType);
然而,在实践中,StructureMap 似乎不仅使用相同的类型,而且使用相同的实例。所以在内存中只有一个实例,defaultType
容器为任何命名请求提供它。
有没有办法告诉它构造和使用单独的实例,即使它们是相同的具体类型?