我已升级到3.0,而且我遇到了一些麻烦。以下注册工作在2.8,但在3.0中抛出错误。我以为我没有在3.0中正确注册,但我不确定我做错了什么。
2.8
container.RegisterOpenGeneric(typeof (IProducerQueue<,,>), typeof (ProducerQueue<,,>));
3.0
container.Register(typeof (IProducerQueue<,,>), typeof (ProducerQueue<,,>));
这在2.8中有效。但是,在3.0中我收到一个错误,表明有两种可能的注册
错误:
{&#34;为
IProducerQueue<FakeMessage, RedisQueueTransportConfigurationSend<RedisQueueAdditionalMessageData>, RedisQueueAdditionalMessageData>
找到多个适用的注册。适用的注册是(1)使用
的IProducerQueue<TMessage, TTransport, TMessageData>
和ProducerQueue<T, TTransport, TMessageData>
无条件开放式通用注册(2)
IProducerQueue<FakeMessage, RedisQueueTransportConfigurationSend<RedisQueueAdditionalMessageData>, RedisQueueAdditionalMessageData>
使用IProducerQueue<FakeMessage, RedisQueueTransportConfigurationSend<RedisQueueAdditionalMessageData>, RedisQueueAdditionalMessageData>
的无条件封闭式通用注册。如果您的目标是在其他注册不适用的情况下使一个注册成为后备,请最后进行后备注册并检查谓词中的Handled属性。&#34;}
我尝试过调用RegisterConditional
方法 - 这会产生相同的错误,这是有道理的,因为以上是此类型的唯一注册调用。