奇怪"为IConfiguration创建实例失败"配置错误

时间:2015-02-03 20:40:03

标签: .net vb.net dependency-injection simple-injector

我正在设置一个SimpleInjector容器,我有一个类具有以下层次结构的类:

TestConfiguration (class I'm working with)
     BaseConfiguration (abstract class)
        IConfiguration (interface used for registering)

列出了很多IConfiguration对象,我正在使用动态进程进行注册(TEF)。这个过程将它们带入并注册了多种类型的IConfiguration接口(确切地说是25个)。我正在使用container.RegisterAll(type, types())重载。它工作得很好,直到我添加了TestConfiguration类,它遵循与其他类相同的方法,但它打破了以下错误:

  

其他信息:配置无效。创造   类型IConfiguration的实例失败。没有注册类型   可以找到TestConfiguration。

为什么呢?它显然在那里,它清楚地实现了界面,它首先在注册的类型列表中。这个错误没有意义,因为它在那里......我正在使用Visual Studio 2013和VB.NET。

堆栈也在这里:

  

在   SimpleInjector.Advanced.ContainerControlledCollection 1.VerifyCreatingProducer(Lazy 1   懒惰的   SimpleInjector.Advanced.ContainerControlledCollection`1.VerifyCreatingProducers()   在   SimpleInjector.Container.VerifyInstanceProducersOfContainerControlledCollection(表达式   表达)at   SimpleInjector.Container.VerifyIfAllExpressionsCanBeBuilt(InstanceProducer []   producerToVerify)at   SimpleInjector.Container.VerifyIfAllExpressionsCanBeBuilt()at   SimpleInjector.Container.Verify()

2 个答案:

答案 0 :(得分:1)

您使用的是Simple Injector版本2.6.0,2.6.1或2.7.0。您在这些版本中遇到的是a bug。如果您升级到Simple Injector v2.7.1,您的生活将再次变得愉快和愉快。

答案 1 :(得分:0)

@Steven的想法很棒,但那对我来说并没有。删除和重新创建具有新类名的文件似乎可以解决问题,原因无任何逻辑:=)