Windsor为多个接口注册单例组件

Mar*_*rco 23 c# castle-windsor

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

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

Component.For<IEnvironment>().ImplementedBy<OutlookEnvironment>().LifestyleSingleton()
Component.For<IOutlookEnvironment>().ImplementedBy<OutlookEnvironment>().LifestyleSingleton()
Run Code Online (Sandbox Code Playgroud)

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

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

nem*_*esv 49

你需要使用的使用多泛型参数重载Component.For方法

Component.For<IEnvironment, IOutlookEnvironment>()
         .ImplementedBy<OutlookEnvironment>()
         .LifestyleSingleton()
Run Code Online (Sandbox Code Playgroud)

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