Castle Windsor - 从同一服务注册Generic和Non-Generic类型

时间:2013-06-24 10:47:53

标签: c# castle-windsor

我有以下结构

public SomeMessage : IServiceMessage
{
}

public MultipleMessage<T> : IServiceMessage
    where T : IServiceMessage
{
}

目前我正在注册所有非通用消息类型(如我先给出的示例),注册时间如下:

container.Register(
    Types.FromAssemblyContaining<IServiceMessage>()
            .BasedOn<IServiceMessage>()
            .WithService.FromInterface()
            .LifestyleTransient());

然而,这不会注册通用的MultipleMessage,所以为了做到这一点,我正在注册所有可能的这样的:

container.Register(
    Component.For<IServiceMessage>()
                .ImplementedBy<MultipleMessage<SomeMessage>>()
                .LifeStyle.Transient);

但这似乎是错误的,因为我正在使用非泛型类型的约定,并使用泛型类型的配置。有没有办法注册MultipleMessage&lt;&gt;对于所有可能的泛型类型?

0 个答案:

没有答案