Castle Windsor - 一个实现多个接口的类

时间:2009-01-12 14:46:41

标签: c# castle-windsor ioc-container

我在应用程序启动时注册了我的两个接口: -

container.Register(Component.For(typeof(IEntityIndexController)).ImplementedBy(typeof(SnippetController)).LifeStyle.Transient);
container.Register(Component.For(typeof(ISnippetController)).ImplementedBy(typeof(SnippetController)).LifeStyle.Transient);

然后,当我尝试在这里使用第二个接口的对象(ISnippetController)上运行IoC.Resolve时,它会引发以下异常: -

无法创建组件“MyApp.Admin.Presenters.SnippetPresenter”,因为它具有要满足的依赖项。 MyApp.Admin.Presenters.SnippetPresenter正在等待以下依赖项: 服务: - 未注册的MyApp.Admin.Controllers.ISnippetController。

如果我切换周围注册的顺序,则抱怨它无法找到IEntityIndexController。所以看起来它只会选择一个类的第一次注册,然后忽略映射到同一具体类的任何其他接口。

这里有什么明显的东西让我失踪吗? (p.s. im使用.net 3.5,windsor RC3)

2 个答案:

答案 0 :(得分:4)

您是否尝试使用不同的语法(AddComponent<>)进行注册?

尝试更新到最新的trunk版本,看看它是否有帮助。对我来说看起来像个错误。 如果没有发生,请创建一个展示错误的测试,然后将其提交here

答案 1 :(得分:2)

更新到最新的中继线(1015)并使用已解决的类型来解决问题。 : - )