奇怪的"创建用于 IConfimetric 的实例失败"配置错误



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

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

列出了许多 IConfiguration 对象,我正在使用动态注册过程 (TEF)。 此过程将它们引入并针对多种类型(确切地说是 25 种)注册 IConfiguration 接口。 我正在使用container.RegisterAll(type, types())重载。 在我添加 TestConfiguration 类之前,它工作得很好,它遵循与其他类相同的方法,但它因以下错误而中断:

其他信息:配置无效。创建 类型 IConfiguration 的实例失败。无需注册类型 可以找到测试配置。

为什么? 它显然在那里,并且它清楚地实现了接口,并且在注册的类型列表中排名第一。 此错误没有意义,因为它在那里... 我使用的是Visual Studio 2013和 VB.NET。

堆栈也在这里:

在 SimpleInjector.Advanced.ContainerControlled Collection 1.VerifyCreatingProducer(Lazy 1 懒惰)在 SimpleInjector.Advanced.ContainerControlled Collection'1.VerifyCreateatingProducers() 在 SimpleInjector.Container.VerifyInstanceProducersOfContainerControlled Collection(Expression 表达式)在 SimpleInjector.Container.VerifyIfAllExpressionsCanBeBuilt(InstanceProducer[] 制片人验证)在 SimpleInjector.Container.VerifyIfAllExpressionsCanBeBuilt() at SimpleInjector.Container.Verify()

您使用的是简单注入器版本 2.6.0、2.6.1 或 2.7.0。您遇到的是这些版本中的错误。如果您升级到Simple Injector v2.7.1,您的生活将再次变得美好而愉快。

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

最新更新