IoC解决非引用依赖性

| 现在我有一个类似于下面的类型结构
interface IFoo { }
class FooA : IFoo { }
class FooB : IFoo { }

//not a builder. generates based on conditions
interface IFooEmitter<TFoo> 
{
    TFoo EmitFoo(); 
} 

abstract class FooEmitterBase<TFoo> : IFooEmitter<TFoo> { }

class FooAEmitter : FooEmitterBase<FooA> { }

[RequiresEmitter(typeof(FooAEmitter))]
class FooBEmitter : FooEmitterBase<FooB> { }
我想在某个地方创建FooBEmitter ...
var b = FooEmitterManager.CreateAndStore<FooBEmitter>(); 
Create()在FooBEmitter上看到RequiresEmitter属性,并递归创建一个FooAEmitter。
//continued from above
var a = FooEmitterManager.CreateAndStore<FooAEmitter>();
Debug.Assert(a == b); // true
FooBEmitter通常不依赖于FooAEmitter(存储对FooAEmitter的引用)。这取决于 正在构造FooAEmitter并将其存储在FooEmitterManager中 FooAEmitter将生成的FooA \ 有什么方法可以使用流行的.NET IoC容器(例如Castle或NInject)来简化这种依赖关系感知的创建?     
已邀请:
        这可能是您正在寻找Ninject的内容:https://github.com/ninject/ninject.extensions.dependencycreation     

要回复问题请先登录注册