0

我有以下结构

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<> ?

4

0 回答 0