23

我想在 Castle.Windsor 中注册一个有 2 个接口的类。

这段代码是否有效...两个接口我只有一个实例...

Component.For<IEnvironment>().ImplementedBy<OutlookEnvironment>().LifestyleSingleton()
Component.For<IOutlookEnvironment>().ImplementedBy<OutlookEnvironment>().LifestyleSingleton()

我需要仔细检查一下,因为我的环境应该始终是同一个实例......

因此,当我使用 IEnvironment 接口解析时,我应该得到与使用 IOutlookEnvironment 解析组件时相同的实例

4

1 回答 1

55

您需要使用方法的 use multi-generic-parameterComponent.For重载

Component.For<IEnvironment, IOutlookEnvironment>()
         .ImplementedBy<OutlookEnvironment>()
         .LifestyleSingleton()

另请参阅文档:使用多个服务部分注册组件

于 2013-02-07T18:04:23.173 回答