我有一个统一注册,可以很好地处理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”。我重建了所有的库,重新启动了我的电脑,一切。知道为什么去除协方差会破坏统一性吗?
答案 0 :(得分:0)
我明白了。我正在解析IChatTranscript,它匹配的具体类与那个确切的定义不匹配(它使用的是Transcript的实现,而不是Transcript本身)。鼓起来,它抛出了那个错误。