我有以下结构
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<> ?