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)来简化这种依赖关系感知的创建?
没有找到相关结果
已邀请:
1 个回复
埃庐