Unity容器 - 删除协方差时的ResolutionFailedException

时间:2017-12-21 14:01:00

标签: unity-container

我有一个统一注册,可以很好地处理out协方差,但是一旦删除它,我就会收到错误

  

“ClassName”:“Microsoft.Practices.Unity.ResolutionFailedException”,   “消息”:“依赖项的解析失败,类型= \”REDACTED.IChatTranscriptBc 1[REDACTED]\", name = \"REDACTED\".\r\nException occurred while: Calling constructor Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior(Microsoft.Practices.Unity.InterceptionExtension.CurrentInterceptionRequest interceptionRequest, Microsoft.Practices.Unity.InterceptionExtension.InjectionPolicy[] policies, Microsoft.Practices.Unity.IUnityContainer container).\r\nException is: ArgumentException - Interface not found.\r\n-----------------------------------------------\r\nAt the time of the exception, the container was:\r\n\r\n Resolving REDACTED.ChatTranscriptBc,REDACTED (mapped from REDACTED.IChatTranscriptBc 1 [已删除],已删除)\ r \ n解析Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior,(none)\ r \ n \ n调用构造函数Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior(Microsoft.Practices.Unity.InterceptionExtension.CurrentInterceptionRequest interceptionRequest,Microsoft.Practices.Unity.InterceptionExtension.InjectionPolicy [] policies,Microsoft.Practices.Unity.IUnityContainer container)\ r \ N“

我的界面有效:

public interface IChatTranscriptBc<out TTranscript>
    where TTranscript : Transcript

我的界面中断

public interface IChatTranscriptBc<TTranscript>
    where TTranscript : Transcript

从字面上看,唯一的变化是我删除了“out”。我重建了所有的库,重新启动了我的电脑,一切。知道为什么去除协方差会破坏统一性吗?

1 个答案:

答案 0 :(得分:0)

我明白了。我正在解析IChatTranscript,它匹配的具体类与那个确切的定义不匹配(它使用的是Transcript的实现,而不是Transcript本身)。鼓起来,它抛出了那个错误。

相关问题