我有一个队列服务,它必须根据队列中对象的类型注入不同的依赖关系图。我正在使用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
希望有人可以在这里为我指明正确的方向,以获得灵活而优雅的解决方案。
谢谢