使用CastleWindsor 2.5.1.0指定在ctor注入中使用的依赖项

Dr.*_*ABT 3 c# dependency-injection castle-windsor

我有一个像这样的构造函数的类

public class BlotterService : IBlotterService
{
    public BlotterService(IAService aService, IAnotherService anotherService)
    {
        // ...  
    } 
}
Run Code Online (Sandbox Code Playgroud)

和这样的注册依赖

// Default lifecycle is Singleton
Component.For<IAnotherService >().ImplementedBy<AnotherService >()
Component.For<IAService>().ImplementedBy<AService>() // instance 1 of AService
Component.For<IAService>().ImplementedBy<AService>().Named(
                    "aServiceAlternativeForBlotter") // instance 2 of AService
Component.For<IBlotterService>().ImplementedBy<BlotterService>()
Run Code Online (Sandbox Code Playgroud)

通常,当需要IAService的类被实例化时,我想要第一个AService实例,但是在BlotterService的特定情况下,我想要AService的实例2.

如何在城堡容器中注册BlotterService/AService来实现这一目标?

编辑:更新

我正在使用Castle 2.5.1.0,遗憾的是无法升级.

Mar*_*ann 8

将上次注册更改为:

Component
    .For<IBlotterService>()
    .ImplementedBy<BlotterService>()
    .DependsOn(Dependency.OnComponent(
        typeof(IAService),
        "aServiceAlternativeForBlotter"))
Run Code Online (Sandbox Code Playgroud)