从Windsor Container中删除或覆盖组件

时间:2008-11-23 15:34:42

标签: c# .net dependency-injection inversion-of-control castle-windsor

我正在尝试完成一个看似非常简单的事情:从我的单元测试中,我想用模拟/假对象替换正在解析的类型。

例如:xml config指出服务IInterface的组件应该解析为ClassA。这很好,但是从我的单元测试中我想要将类型解析为FakeClassA。我不能使用container.AddComponent,因为“已经为给定的密钥注册了一个组件......”。

1 个答案:

答案 0 :(得分:4)

IKernel有RemoveComponent方法。

但是对于单元测试,建议您根本不使用容器,或者如果测试设置由于依赖性而过于密集,请使用AutoMockingContainer

Here's另一个(更新的)实施。