我有以下结构
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;对于所有可能的泛型类型?