我有一个队列服务,它必须根据队列中对象的类型注入不同的依赖关系图。我正在使用Structure Map.
因此,如果队列中的对象是使用TypeA的具体类TypeA,如果是TypeB,则使用的具体类TypeB。
我想避免队列中的代码,例如:
if (typeA)
{
// setup TypeA graph
}
else if (typeB) {
// setup TypeB graph
}
在图中,我还有一个泛型类,例如IReader(ISomething, ISpomethingElse)whereIReader是泛型的,但需要为类型注入正确的ISomething和ISomethingElse。 ISomething也会有依赖等等。
目前我创建一个TypeA或TypeB对象并使用 StructureMap 将一个通用处理器类注入其中,然后将factory手动注入一个TypeA或TypeB工厂传递给如下方法:
Processor.Process(new TypeAFactory) // perhaps I should have an abstract factory...
但是,因为工厂随后创建了IReader上面提到的泛型,所以我最终手动注入了所有 TypeA 或TypeB那里的类。
我希望这足够有意义。
我是新手,StructureMap希望有人可以在这里为我指明正确的方向,以获得灵活而优雅的解决方案。
谢谢