简单的进样器3.0 - 泛型注册

时间:2015-08-19 23:55:15

标签: c# simple-injector

我已升级到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方法 - 这会产生相同的错误,这是有道理的,因为以上是此类型的唯一注册调用。

0 个答案:

没有答案